I am in the process of upgrading an existing project from Wt 2.2.2 to 2.99.5 
and have been experiencing segfaults. 

I haven't determined the root cause yet, but ultimately it appears recursive 
calls to propagateLayoutItemsOk() in WContainerWidget tries to dereference 
parameter "item" when it is NULL.

Simply testing item for NULL prevents the segfault and doesn't appear to have 
any side-effects, but I wonder if this is the correct thing to do? I suspect 
there are deeper issues with my containers/layout that are the real root cause. 

Environment:
* Fedora 11 x86_64, gcc 4.4.1-2
* Custom build system (Wt not built with cmake/make)

The following debug is produced prior to the segfault: 
Improper load() implementation: base implementation not called? 

Backtrace: 
#0 0x0831a8f6 in Wt::WContainerWidget::propagateLayoutItemsOk (this=0x87dd3c0, 
item=0x0) at thirdparty/wt/src/Wt/src/WContainerWidget.C:519 
#1 0x0831a96e in Wt::WContainerWidget::propagateLayoutItemsOk (this=0x87dd3c0, 
item=0x87dd4a0) at thirdparty/wt/src/Wt/src/WContainerWidget.C:523 
#2 0x0831aa89 in Wt::WContainerWidget::propagateRenderOk (this=0x87dd3c0, 
deep=true) at thirdparty/wt/src/Wt/src/WContainerWidget.C:539 
#3 0x083a0a3b in Wt::WWebWidget::propagateRenderOk (this=0x87dd318, deep=true) 
at thirdparty/wt/src/Wt/src/WWebWidget.C:1264 
#4 0x08352a4a in Wt::WInteractWidget::propagateRenderOk (this=0x87dd318, 
deep=true) at thirdparty/wt/src/Wt/src/WInteractWidget.C:210 
#5 0x0831aabe in Wt::WContainerWidget::propagateRenderOk (this=0x87dd318, 
deep=true) at thirdparty/wt/src/Wt/src/WContainerWidget.C:544 
#6 0x083a0a3b in Wt::WWebWidget::propagateRenderOk (this=0x87e39c0, deep=true) 
at thirdparty/wt/src/Wt/src/WWebWidget.C:1264 
#7 0x08352a4a in Wt::WInteractWidget::propagateRenderOk (this=0x87e39c0, 
deep=true) at thirdparty/wt/src/Wt/src/WInteractWidget.C:210 
#8 0x0831aabe in Wt::WContainerWidget::propagateRenderOk (this=0x87e39c0, 
deep=true) at thirdparty/wt/src/Wt/src/WContainerWidget.C:544 
#9 0x083a0d57 in Wt::WWebWidget::createSDomElement (this=0x87e39c0, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WWebWidget.C:1312 
#10 0x0831b5d6 in Wt::WContainerWidget::createDomChildren (this=0x87a6ce8, 
pare...@0x87f82e0, app=0x8773978) at 
thirdparty/wt/src/Wt/src/WContainerWidget.C:656 
#11 0x0831ad84 in Wt::WContainerWidget::createDomElement (this=0x87a6ce8, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WContainerWidget.C:598 
#12 0x083803fc in Wt::WStackedWidget::createDomElement (this=0x87a6ce8, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WStackedWidget.C:107 
#13 0x083a1248 in Wt::WWebWidget::createSDomElement (this=0x87a6ce8, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WWebWidget.C:1340 
#14 0x0831b5d6 in Wt::WContainerWidget::createDomChildren (this=0x87a6fb8, 
pare...@0x87f7ff8, app=0x8773978) at 
thirdparty/wt/src/Wt/src/WContainerWidget.C:656 
#15 0x0831ad84 in Wt::WContainerWidget::createDomElement (this=0x87a6fb8, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WContainerWidget.C:598 
#16 0x083a1248 in Wt::WWebWidget::createSDomElement (this=0x87a6fb8, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WWebWidget.C:1340 
#17 0x0831b5d6 in Wt::WContainerWidget::createDomChildren (this=0x87a71e8, 
pare...@0x87f7e88, app=0x8773978) at 
thirdparty/wt/src/Wt/src/WContainerWidget.C:656 
#18 0x0831ad84 in Wt::WContainerWidget::createDomElement (this=0x87a71e8, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WContainerWidget.C:598 
#19 0x083a1248 in Wt::WWebWidget::createSDomElement (this=0x87a71e8, 
app=0x8773978) at thirdparty/wt/src/Wt/src/WWebWidget.C:1340 
#20 0x0831a6df in Wt::WContainerWidget::updateDom (this=0x8770378, 
eleme...@0x87f78e8, all=false) at 
thirdparty/wt/src/Wt/src/WContainerWidget.C:480 
#21 0x0831ad12 in Wt::WContainerWidget::getDomChanges (this=0x8770378, 
result=std::vector of length 2, capacity 2 = {...}, app=0x8773978) at 
thirdparty/wt/src/Wt/src/WContainerWidget.C:588 
#22 0x083a0901 in Wt::WWebWidget::getSDomChanges (this=0x8770378, 
result=std::vector of length 2, capacity 2 = {...}, app=0x8773978) at 
thirdparty/wt/src/Wt/src/WWebWidget.C:1233 
#23 0x08422366 in Wt::WebRenderer::collectChanges (this=0x876f8f4, 
changes=std::vector of length 2, capacity 2 = {...}) at 
thirdparty/wt/src/web/WebRenderer.C:910 
#24 0x08422a98 in Wt::WebRenderer::collectJS (this=0x876f8f4, js=0x876f93c) at 
thirdparty/wt/src/web/WebRenderer.C:1016 
#25 0x0842248d in Wt::WebRenderer::collectJavaScriptUpdate (this=0x876f8f4, 
o...@0x876f93c) at thirdparty/wt/src/web/WebRenderer.C:939 
#26 0x0841df82 in Wt::WebRenderer::collectJavaScript (this=0x876f8f4) at 
thirdparty/wt/src/web/WebRenderer.C:377 
#27 0x0841dafc in Wt::WebRenderer::serveJavaScriptUpdate (this=0x876f8f4, 
respon...@0x87a1ab0) at thirdparty/wt/src/web/WebRenderer.C:322 
#28 0x0841b480 in Wt::WebRenderer::serveResponse (this=0x876f8f4, 
respon...@0x87a1ab0, responseType=Wt::WebRenderer::Update) at 
thirdparty/wt/src/web/WebRenderer.C:151 
#29 0x0843edc6 in Wt::WebSession::render (this=0x876f8e0, handl...@0xffffc508, 
type=Wt::WebRenderer::Update) at thirdparty/wt/src/web/WebSession.C:1206 
#30 0x0843eafc in Wt::WebSession::notify (this=0x876f8e0, eve...@0xffffc5b4) at 
thirdparty/wt/src/web/WebSession.C:1186 
#31 0x08301c3d in Wt::WApplication::notify (this=0x8773978, e...@0xffffc5b4) at 
thirdparty/wt/src/Wt/src/WApplication.C:999 
#32 0x0843c53a in Wt::WebSession::handleRequest (this=0x876f8e0, 
reque...@0x87a1ab0, respon...@0x87a1ab0) at 
thirdparty/wt/src/web/WebSession.C:910 
#33 0x0841664d in Wt::WebController::handleRequest (this=0x876f660, 
request=0x87a1ab0, ep=0x8770b30) at thirdparty/wt/src/web/WebController.C:407 
#34 0x0849289c in http::server::WtReply::consumeRequestBody (this=0x87a1f50, 
begin=0x879b9cc 
"request=jsupdate&&signal=s5&o10=admin&ob=admin&tid=o10&type=keydown&scrollX=0&scrollY=0&width=244&height=17&widgetX=-125&widgetY=-32&right=false&keyCode=13&charCode=0&ackId=1\303\a\17\270\31Wē\364\245\250\2\362nI\245",
 end=0x879ba7a "\303\a\17\270\31Wē\364\245\250\2\362nI\245", endOfRequest=true) 
at thirdparty/wt/src/http/WtReply.C:41 
#35 0x0848acb2 in http::server::RequestParser::parseBody (this=0x879d7d0, 
r...@0x879d784, reply={px = 0x87a1f50, pn = {pi_ = 0x87714a0}}, 
beg...@0x879d780, end=0x879ba7a "\303\a\17\270\31Wē\364\245\250\2\362nI\245") 
at thirdparty/wt/src/http/RequestParser.C:115 
#36 0x0847deae in http::server::Connection::handleReadBody (this=0x879b758) at 
thirdparty/wt/src/http/Connection.C:131 
#37 0x0847dad0 in http::server::Connection::handleReadRequest0 (this=0x879b758) 
at thirdparty/wt/src/http/Connection.C:96 
#38 0x0847dd6b in http::server::Connection::handleReadRequest (this=0x879b758, 
e...@0xffffcb44, bytes_transferred=766) at 
thirdparty/wt/src/http/Connection.C:120 
#39 0x0847c705 in boost::_mfi::mf2<void, http::server::Connection, 
boost::system::error_code const&, unsigned 
int>::call<boost::shared_ptr<http::server::Connection>, 
boost::system::error_code const, unsigned int> (this=0xffffcb34, 
u...@0xffffcb3c, b...@0xffffcb44, b...@0xffffca6c) at 
thirdparty/boost/boost/bind/mem_fn_template.hpp:265 
#40 0x0847c4f5 in boost::_mfi::mf2<void, http::server::Connection, 
boost::system::error_code const&, unsigned 
int>::operator()<boost::shared_ptr<http::server::Connection> > 
(this=0xffffcb34, u...@0xffffcb3c, a...@0xffffcb44, a2=766) 
at thirdparty/boost/boost/bind/mem_fn_template.hpp:279 
#41 0x0847c787 in 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()>::operator()<boost::_mfi::mf2<void, 
http::server::Connection, boost::system::error_code const&, unsigned int>, 
boost::_bi::list2<boost::system::error_code&, unsigned int&> > 
(this=0xffffcb3c, f...@0xffffcb34, a...@0xffffcac8) at 
thirdparty/boost/boost/bind/bind.hpp:385 
#42 0x0847c5b1 in boost::_bi::bind_t<void, boost::_mfi::mf2<void, 
http::server::Connection, boost::system::error_code const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> 
>::operator()<boost::system::error_code, unsigned int> (this=0xffffcb34, 
a...@0xffffcb44, a...@0xffffcb4c) at 
thirdparty/boost/boost/bind/bind_template.hpp:61 
#43 0x0847c245 in boost::asio::detail::binder2<boost::_bi::bind_t<void, 
boost::_mfi::mf2<void, http::server::Connection, boost::system::error_code 
const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int>::operator() (this=0xffffcb34) at 
thirdparty/boost/boost/asio/detail/bind_handler.hpp:96 
#44 0x0847bf7e in 
boost::asio::asio_handler_invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,
 boost::_mfi::mf2<void, http::server::Connection, boost::system::error_code 
const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int> > (function= 
{handler_ = {f_ = {f_ = 0x847dd04 
<http::server::Connection::handleReadRequest(boost::system::error_code const&, 
unsigned int)>}, l_ = 
{<boost::_bi::storage3<boost::_bi::value<boost::shared_ptr<http::server::Connection>
 >, boost::arg<1> (*)(), boost::arg<2> (*)()>> = 
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<http::server::Connection>
 >, boost::arg<1> (*)()>> = 
{<boost::_bi::storage1<boost::_bi::value<boost::shared_ptr<http::server::Connection>
 > >> = {a1_ = {t_ = {px = 0x879b758, pn = {pi_ = 0x8770a38}}}}, <No data 
fields>}, <No data fields>}, <No data fields>}}, arg1_ = {m_val = 0, m_cat = 
0x874c34c}, arg2_ = 766}) at 
thirdparty/boost/boost/asio/handler_invoke_hook.hpp:62 
#45 0x0847bd7f in 
boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,
 boost::_mfi::mf2<void, http::server::Connection, boost::system::error_code 
const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, 
http::server::Connection, boost::system::err---Type <return> to continue, or q 
<return> to quit--- 
or_code const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> > > (functi...@0xffffcbc8, 
context=0xffffcbc8) 
at thirdparty/boost/boost/asio/detail/handler_invoke_helpers.hpp:39 
#46 0x0847ba6b in 
boost::asio::detail::asio_handler_invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,
 boost::_mfi::mf2<void, http::server::Connection, boost::system::error_code 
const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int>, boost::_bi::bind_t<void, boost::_mfi::mf2<void, 
http::server::Connection, boost::system::error_code const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int> (functi...@0xffffcbc8, 
this_handler=0xffffcbc8) at 
thirdparty/boost/boost/asio/detail/bind_handler.hpp:130 
#47 0x0847b72d in 
boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<boost::_bi::bind_t<void,
 boost::_mfi::mf2<void, http::server::Connection, boost::system::error_code 
const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int>, boost::asio::detail::binder2<boost::_bi::bind_t<void, 
boost::_mfi::mf2<void, http::server::Connection, boost::system::error_code 
const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int> > ( 
functi...@0xffffcbc8, context=0xffffcbc8) at 
thirdparty/boost/boost/asio/detail/handler_invoke_helpers.hpp:39 
#48 0x0847adb4 in 
boost::asio::detail::handler_queue::handler_wrapper<boost::asio::detail::binder2<boost::_bi::bind_t<void,
 boost::_mfi::mf2<void, http::server::Connection, boost::system::error_code 
const&, unsigned int>, 
boost::_bi::list3<boost::_bi::value<boost::shared_ptr<http::server::Connection> 
>, boost::arg<1> (*)(), boost::arg<2> (*)()> >, boost::system::error_code, 
unsigned int> >::do_call (base=0x8773d28) 
at thirdparty/boost/boost/asio/detail/handler_queue.hpp:192 
#49 0x082202c0 in boost::asio::detail::handler_queue::handler::invoke 
(this=0x8773d28) at thirdparty/boost/boost/asio/detail/handler_queue.hpp:39 
#50 0x082225a4 in 
boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor<false> 
>::do_one (this=0x8770908, lo...@0xffffccfc, this_idle_thread=0xffffccc4, 
e...@0xffffcd44) 
at thirdparty/boost/boost/asio/detail/task_io_service.hpp:268 
#51 0x08221583 in 
boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor<false> 
>::run (this=0x8770908, e...@0xffffcd44) at 
thirdparty/boost/boost/asio/detail/task_io_service.hpp:103 
#52 0x08220cd9 in boost::asio::io_service::run (this=0x8770ddc) at 
thirdparty/boost/boost/asio/impl/io_service.ipp:58 
#53 0x0845d11e in http::server::Server::run (this=0x8770dc8) at 
thirdparty/wt/src/http/Server.C:192 
#54 0x0844fe33 in Wt::WServer::start (this=0xffffce08) at 
thirdparty/wt/src/http/WServer.C:146 
#55 0x080870a3 in WebAppRunner::run (this=0xffffcfb7) at server/main.cpp:88 
#56 0x08084d07 in main (argc=3, argv=0xffffd134) at server/main.cpp:218 

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
witty-interest mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/witty-interest

Reply via email to