Opened 8 years ago

Closed 6 years ago

#4768 closed Bugs (fixed)

MinGW: SIGSEGV in refcount_ptr (exception.hpp:38)

Reported by: Jim Bell <jim@…> Owned by: Emil Dotchevski
Milestone: To Be Determined Component: exception
Version: Boost 1.44.0 Severity: Problem
Keywords: mingw SIGSEGV clone Cc:


copy_exception_test fails (see here, current as of 2010/10/21):

Run [2010-10-21 22:46:51 UTC]: fail

pure virtual method called

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<err>'
  what():  std::exception

gdb shows me this:

Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 4076.0x1278]
0x00415975 in refcount_ptr (this=0x38184, x=@0x4ca534)
    at ../boost/exception/exception.hpp:38
38                      px_(x.px_)

(gdb)bt [backtrace]
#0  0x00415975 in refcount_ptr (this=0x38184, x=@0x4ca534)
    at ../boost/exception/exception.hpp:38
#1  0x00421cdb in exception (this=0x38180)
    at ../boost/exception/exception.hpp:199
#2  0x00413183 in clone_impl (this=0x38178)
    at ../boost/exception/exception.hpp:405
#3  0x004252c0 in boost::exception_detail::clone_impl<err>::clone (
    this=0x3c200) at ../boost/exception/exception.hpp:424
#4  0x00417226 in boost::exception_detail::current_exception_impl ()
    at ../boost/exception/detail/exception_ptr.hpp:302
#5  0x0041c521 in boost::current_exception ()
    at ../boost/exception/detail/exception_ptr.hpp:403
#6  0x00411f54 in boost::copy_exception<err> (e=@0x2acfeb0)
    at ../boost/exception/detail/exception_ptr.hpp:48
#7  0x00401411 in producer (f=@0x16cfed8)
    at ..\libs\exception\test\copy_exception_test.cpp:81
#8  0x0041d523 in boost::_bi::list1<boost::reference_wrapper<future> >::operator
()<void (*)(future&), boost::_bi::list0> (this=0x253244, f=@0x253240,
    a=@0x2acff27) at ../boost/bind/bind.hpp:253
#9  0x0041d57e in boost::_bi::bind_t<void, void (*)(future&), boost::_bi::list1<
boost::reference_wrapper<future> > >::operator() (this=0x253240)
    at ../boost/bind/bind_template.hpp:20
#10 0x0041d920 in boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(f
uture&), boost::_bi::list1<boost::reference_wrapper<future> > > >::run (
    this=0x253220) at ../boost/thread/detail/thread.hpp:61
#11 0x00401c25 in thread_start_function (param=0x253220)
    at ..\libs\thread\src\win32\thread.cpp:168
#12 0x77c3a3b0 in msvcrt!_endthreadex () from C:\WINDOWS\system32\msvcrt.dll
#13 0x7c80b729 in KERNEL32!GetModuleFileNameA ()
   from C:\WINDOWS\system32\kernel32.dll
#14 0x00000000 in ?? ()

Change History (3)

comment:1 Changed 8 years ago by Marshall Clow

Looking at the test matrix; this is passing for mingw-gcc 4.4.3, failing on 4.4.5, and passing on 4.5.1.

[ The 4.4.3 and 4.4.5 tests are both run by the same tester, btw ]

comment:2 Changed 8 years ago by Eric Niebler

Milestone: Boost-1.45.0To Be Determined
Severity: ShowstopperProblem

Jim, it looks like we don't have a repro of this bug on the release branch. We're not testing that platform/compiler combination there. Can you see if you can reproduce the issue on release? As it stands, I can't justify holding up 1.45 for this issue, so I'm knocking it's severity down to "Problem" and changing the milestone to "TBD".

comment:3 Changed 6 years ago by Emil Dotchevski

Resolution: fixed
Status: newclosed

Just tested on MinGW, gcc 4.6.1, all tests pass. Marking this bug as resolved, please reopen if the crash reoccurs (if I have to speculate it was a compiler bug.)

Note: See TracTickets for help on using tickets.