Project

General

Profile

Bug #4553

Wt segfault in WMessageResources::hibernate()

Added by Mark O'Donovan almost 7 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
Start date:
11/06/2015
Due date:
% Done:

0%

Estimated time:

Description

Wt can segfault in WMessageResources::hibernate() if loadInMemory_ is false.

The issue occurs if the function is called from two threads simultaneously.

Adding a mutex (see patch) resolves the issue.

The issue is present in Wt 3.3.4 and latest git.

I have not had time to isolate a test-case but the following change in my

application fixes (avoids) the issue

  • messageResourceBundle().use(docRoot() + FILE_LANG_EN, false);
  • messageResourceBundle().use(docRoot() + FILE_LANG_EN);

Segfault (threads 1 & 19)

Thread 1 (LWP 378):
#0  0xb6494894 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0xb6498394 in __GI_abort () at abort.c:89

#2  0xb64cc7b8 in __libc_message (do_abort=<optimized out>, fmt=0xb6584a00 "*** Error in `%s': %s: 0x%s ***\n")
    at ../sysdeps/posix/libc_fatal.c:175

#3  0xb64d6a74 in malloc_printerr (action=3, str=0xb6584b80 "free(): invalid pointer", ptr=<optimized out>) at malloc.c:4960

#4  0xb64d73ec in _int_free (av=<optimized out>, p=<optimized out>, have_lock=-1364202648) at malloc.c:3831

#5  0xb6a3f660 in __destroy<std::basic_string<char>*> (__last=0xac813ee4, __first=0xac813ee4)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_construct.h:102

#6  _Destroy<std::basic_string<char>*> (__last=0xac813ee4, __first=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_construct.h:126

#7  _Destroy<std::basic_string<char>*, std::basic_string<char> > (__last=0xac813ee4, __first=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_construct.h:151

#8  std::vector<std::string, std::allocator<std::string> >::~vector (this=0xac813ecc, __in_chrg=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_vector.h:424

#9  0xb6b1720c in ~pair (this=0xac813ec8, __in_chrg=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_pair.h:96

#10 destroy (this=<optimized out>, __p=0xac813ec8)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/ext/new_allocator.h:133
---Type <return> to continue, or q <return> to quit---

#11 _M_destroy_node (this=0xb1b1400c, __p=0xac813eb8)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:409

#12 std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xac813eb8)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1247
#13 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1dec958)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#14 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1d04418)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#15 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1d045a0)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#16 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1d008e8)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#17 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1d02b70)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#18 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1da7f38)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#19 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1dcfb10)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#20 0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=0xb1b1400c, __x=0xb1da7c10)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
---Type <return> to continue, or q <return> to quit---

//problem
#21 0xb6ba9fbc in clear (this=0xb1b1400c) at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:908

#22 clear (this=0xb1b1400c) at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_map.h:827

//HERE

#23 Wt::WMessageResources::hibernate (this=0xb1b13fe0) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WMessageResources.C:356

//purges memory resources if possible
#24 0xb6ba8900 in Wt::WMessageResourceBundle::hibernate (this=0xb1b0e6b0) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WMessageResourceBundle.C:90

#25 0xb6ade890 in size (this=0xb1b0e6cc, this=0xb1b0e6cc)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_vector.h:655

//pointers match
#26 Wt::WCombinedLocalizedStrings::hibernate (this=0xb1b0e6c8) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WCombinedLocalizedStrings.C:94


#27 0xb6df5938 in operator++ (this=<synthetic pointer>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_iterator.h:751

#28 __find_if<__gnu_cxx::__normal_iterator<Wt::WebSession::Handler**, std::vector<Wt::WebSession::Handler*> >, __gnu_cxx::__ops::_Iter_equals_val<Wt::WebSession::Handler* const> > (__pred=..., __last=, __first=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_algo.h:126

#29 __find_if<__gnu_cxx::__normal_iterator<Wt::WebSession::Handler**, std::vector<Wt::WebSession::Handler*> >, __gnu_cxx::__ops::_Iter_equals_val<Wt::WebSession::Handler* const> > (__pred=..., __last=..., __first=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_algo.h:162

#30 find<__gnu_cxx::__normal_iterator<Wt::WebSession::Handler**, std::vector<Wt::WebSession::Handler*> >, Wt::WebSession::Handler*> (
    __val=<optimized out>, __last=..., __first=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_algo.h:3779

//erase handler??
#31 erase<Wt::WebSession::Handler*> (value=<optimized out>, v=<error reading variable: Cannot access memory at address 0x1780>)
    at /usr/src/debug/wt/3.3.4-3/git/src/web/WebUtils.h:113

//destructor (different pointers)
#32 Wt::WebSession::Handler::~Handler (this=0xaeafed20, __in_chrg=<optimized out>) at /usr/src/debug/wt/3.3.4-3/git/src/web/WebSession.C:1009

#33 0xb6dde288 in ~shared_count (this=0xaeafed14, __in_chrg=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/smart_ptr/detail/shared_count.hpp:443

#34 ~shared_ptr (this=0xaeafed18, __in_chrg=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/smart_ptr/shared_ptr.hpp:323

#35 Wt::WebController::handleApplicationEvent (this=<optimized out>, event=...) at /usr/src/debug/wt/3.3.4-3/git/src/web/WebController.C:528

#36 0xb6b6313c in operator() (this=0xaeafed80)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/function/function_template.hpp:767

#37 asio_handler_invoke<boost::function<void()> > (function=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/handler_invoke_hook.hpp:69

#38 invoke<boost::function<void()>, boost::function<void()> > (context=..., function=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37

#39 boost::asio::detail::completion_handler<boost::function<void ()> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned int) (owner=0xb1b03ae8, base=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/completion_handler.hpp:68

#40 0xb6b60988 in complete (bytes_transferred=0, ec=..., owner=..., this=0xb1d82ce0)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/task_io_service_operation.hpp:38

#41 do_run_one (ec=..., this_thread=..., lock=..., this=0xb1b03ae8)
---Type <return> to continue, or q <return> to quit---
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/impl/task_io_service.ipp:372

#42 boost::asio::detail::task_io_service::run (this=0xb1b03ae8, ec=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/impl/task_io_service.ipp:149

#43 0xb6b5e15c in run (this=0xb1b027d4)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/impl/io_service.ipp:59

#44 Wt::WIOService::run (this=0xb1b027d0) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WIOService.C:180

#45 0xb67bb120 in boost::(anonymous namespace)::thread_proxy (param=<optimized out>) at libs/thread/src/pthread/thread.cpp:173

#46 0xb6f2dde0 in start_thread (arg=0xaeaff450) at pthread_create.c:338

#47 0xb6538a30 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:89
   from /opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
.
.
.
.
.
.
Thread 19 (LWP 381):
#0  0xb6a24f18 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >*)@plt ()
   from /opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/usr/lib/libwt.so.38
#1  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1d674b0)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#2  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1de9180)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#3  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1da7b40)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#4  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1d7df40)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#5  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1dcc058)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#6  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1df6d80)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#7  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1d54f28)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#8  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=this@entry=0xb1b1400c, __x=0xb1dbbc78)
---Type <return> to continue, or q <return> to quit---
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245
#9  0xb6b17200 in std::_Rb_tree<std::string, std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > >, std::_Select1st<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<std::string, std::allocator<std::string> > > > >::_M_erase (this=0xb1b1400c, __x=0xb1dbce30)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:1245

//problem
#10 0xb6ba9fbc in clear (this=0xb1b1400c) at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_tree.h:908

#11 clear (this=0xb1b1400c) at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_map.h:827

//HERE

#12 Wt::WMessageResources::hibernate (this=0xb1b13fe0) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WMessageResources.C:356

//purges memory resources if possible
#13 0xb6ba8900 in Wt::WMessageResourceBundle::hibernate (this=0xb1b0e6b0) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WMessageResourceBundle.C:90

#14 0xb6ade890 in size (this=0xb1b0e6cc, this=0xb1b0e6cc)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_vector.h:655

//pointers match
#15 Wt::WCombinedLocalizedStrings::hibernate (this=0xb1b0e6c8) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WCombinedLocalizedStrings.C:94

#16 0xb6df5938 in operator++ (this=<synthetic pointer>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_iterator.h:751

#17 __find_if<__gnu_cxx::__normal_iterator<Wt::WebSession::Handler**, std::vector<Wt::WebSession::Handler*> >, __gnu_cxx::__ops::_Iter_equals_val<Wt::WebSession::Handler* const> > (__pred=..., __last=, __first=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_algo.h:126

#18 __find_if<__gnu_cxx::__normal_iterator<Wt::WebSession::Handler**, std::vector<Wt::WebSession::Handler*> >, __gnu_cxx::__ops::_Iter_equals_val<Wt::WebSession::Handler* const> > (__pred=..., __last=..., __first=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_algo.h:162

#19 find<__gnu_cxx::__normal_iterator<Wt::WebSession::Handler**, std::vector<Wt::WebSession::Handler*> >, Wt::WebSession::Handler*> (
    __val=<optimized out>, __last=..., __first=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/c++/4.9.2/bits/stl_algo.h:3779

//erase handler??
#20 erase<Wt::WebSession::Handler*> (value=<optimized out>, v=std::vector of length 47166347, capacity -306711676 = {...})
    at /usr/src/debug/wt/3.3.4-3/git/src/web/WebUtils.h:113

//destructor (different pointers)
#21 Wt::WebSession::Handler::~Handler (this=0xad2fcc70, __in_chrg=<optimized out>) at /usr/src/debug/wt/3.3.4-3/git/src/web/WebSession.C:1009

#22 0xb6df5ac0 in Wt::WebSession::handleWebSocketMessage (session=..., event=(unknown: 2905590896))
    at /usr/src/debug/wt/3.3.4-3/git/src/web/WebSession.C:1724

#23 0xb6df808c in atomic_increment (pw=0xb6ade860 <Wt::WCombinedLocalizedStrings::hibernate()+8>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp:43

#24 weak_add_ref (
    this=0xb6df808c <boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, void (*)(boost::weak_ptr<Wt::WebSession>, Wt::WebReadEvent), boost::_bi::list2<boost::_bi::value<boost::weak_ptr<Wt::WebSession> >, boost::arg<1> > >, void, Wt::WebReadEvent>::invoke(boost::detail::function::function_buffer&, Wt::WebReadEvent)+60>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/smart_ptr/detail/sp_counted_base_sync.hpp:135

#25 weak_count (r=..., this=0xad2fed54)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/smart_ptr/detail/shared_count.hpp:564

#26 weak_ptr (this=0xad2fed58) at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/smart_ptr/weak_ptr.hpp:23
---Type <return> to continue, or q <return> to quit---

#27 operator()<void (*)(boost::weak_ptr<Wt::WebSession>, Wt::WebReadEvent), boost::_bi::list1<Wt::WebReadEvent&> > (f=<optimized out>, 
    a=<synthetic pointer>, this=<optimized out>) at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/bind/bind.hpp:313

#28 operator()<Wt::WebReadEvent> (a1=<synthetic pointer>, this=<optimized out>)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/bind/bind_template.hpp:32

#29 boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, void (*)(boost::weak_ptr<Wt::WebSession>, Wt::WebReadEvent), boost::_bi::list2<boost::_bi::value<boost::weak_ptr<Wt::WebSession> >, boost::arg<1> > >, void, Wt::WebReadEvent>::invoke (
    function_obj_ptr=..., a0=Wt::ReadError)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/function/function_template.hpp:153

#30 0xb686a734 in operator() (a0=<optimized out>, this=0xad2fed7c)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/function/function_template.hpp:767
#31 operator()<boost::function<void(Wt::WebReadEvent)>, boost::_bi::list0> (a=<synthetic pointer>, f=..., this=0xad2fed8c)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/bind/bind.hpp:253
#32 operator() (this=0xad2fed7c) at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/bind/bind_template.hpp:20
#33 asio_handler_invoke<boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void(Wt::WebReadEvent)>, boost::_bi::list1<boost::_bi::value<Wt::WebReadEvent> > > > (function=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/handler_invoke_hook.hpp:69
#34 invoke<boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void(Wt::WebReadEvent)>, boost::_bi::list1<boost::_bi::value<Wt::WebReadEvent> > >, boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void(Wt::WebReadEvent)>, boost::_bi::list1<boost::_bi::value<Wt::WebReadEvent> > > > (context=..., function=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
#35 boost::asio::detail::completion_handler<boost::_bi::bind_t<boost::_bi::unspecified, boost::function<void (Wt::WebReadEvent)>, boost::_bi::list1<boost::_bi::value<Wt::WebReadEvent> > > >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned int) (owner=0xb1b03ae8, base=0x28a7f8)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/completion_handler.hpp:68
#36 0xb6b60988 in complete (bytes_transferred=0, ec=..., owner=..., this=0x28a7f8)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/task_io_service_operation.hpp:38
#37 do_run_one (ec=..., this_thread=..., lock=..., this=0xb1b03ae8)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/impl/task_io_service.ipp:372
#38 boost::asio::detail::task_io_service::run (this=0xb1b03ae8, ec=...)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/detail/impl/task_io_service.ipp:149
#39 0xb6b5e15c in run (this=0xb1b027d4)
    at /home/modonovan/poky-fido/build/tmp/sysroots/biotector/usr/include/boost/asio/impl/io_service.ipp:59
#40 Wt::WIOService::run (this=0xb1b027d0) at /usr/src/debug/wt/3.3.4-3/git/src/Wt/WIOService.C:180
#41 0xb67bb120 in boost::(anonymous namespace)::thread_proxy (param=<optimized out>) at libs/thread/src/pthread/thread.cpp:173
#42 0xb6f2dde0 in start_thread (arg=0xad2ff450) at pthread_create.c:338
#43 0xb6538a30 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:89
   from /opt/poky/1.8/sysroots/cortexa8hf-vfp-neon-poky-linux-gnueabi/lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Files

fix_msg_resources_segv.patch (1.5 KB) fix_msg_resources_segv.patch Working patch Mark O'Donovan, 11/06/2015 12:18 PM

No data to display

Also available in: Atom PDF