[Boost-bugs] [Boost C++ Libraries] #4769: MinGW: std::terminate() called recursively in exception_ptr_test

Subject: [Boost-bugs] [Boost C++ Libraries] #4769: MinGW: std::terminate() called recursively in exception_ptr_test
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-10-22 03:14:43


#4769: MinGW: std::terminate() called recursively in exception_ptr_test
-----------------------------------------+----------------------------------
 Reporter: Jim Bell <jim@…> | Owner: emildotchevski
     Type: Bugs | Status: new
Milestone: Boost-1.45.0 | Component: exception
  Version: Boost 1.44.0 | Severity: Showstopper
 Keywords: mingw terminate recursively |
-----------------------------------------+----------------------------------
 exception_ptr_test fails
 ([http://www.boost.org/development/tests/trunk/developer/output/MinGW-32
 %20jc-bell-com-boost-bin-v2-libs-exception-test-exception_ptr_test-test-
 gcc-mingw-4-4-0-debug-link-static-threading-multi.html see here], link
 valid 2010/10/21) with what appears to be many calls to terminate:

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

 This application has requested the Runtime to terminate it in an unusual
 way.
 Please contact the application's support team for more information.

 This application has requested the Runtime to terminate it in an unusual
 way.
 Please contact the application's support team for more information.

 This application has requested the Runtime to terminate it in an unusual
 way.
 Please contact the application's support team for more information.

 This application has requested the Runtime to terminate it in an unusual
 way.
 Please contact the application's support team for more information.

 This application has requested the Runtime to terminate it in an unusual
 way.
 Please contact the application's support team for more information.

 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<exc>terminate called recursively
 '
 terminate called recursively
 terminate called recursively
 terminate called recursively
 terminate called recursively
 terminate called recursively

 EXIT STATUS: 3
 }}}

 Running it in gdb and breaking at std::terminate, I get:

 {{{
 (gdb) bt
 #0 std::terminate ()
     at ../../../../gcc-4.4.0/libstdc++-v3/libsupc++/eh_terminate.cc:48
 #1 0x00478f57 in __cxa_throw (obj=0x34780, tinfo=0x48c060,
     dest=0x412668 <~clone_impl>)
     at ../../../../gcc-4.4.0/libstdc++-v3/libsupc++/eh_throw.cc:83
 #2 0x00411d9b in boost::throw_exception<exc> (e=@0xcafde0)
     at ../boost/throw_exception.hpp:61
 #3 0x0041550b in boost::exception_detail::throw_exception_<exc> (
     x=@0xcafe30, current_function=0x488754 "void thread_func()",
     file=0x488398 "..\\libs\\exception\\test\\exception_ptr_test.cpp",
     line=103) at ../boost/throw_exception.hpp:78
 #4 0x004014b9 in thread_func ()
     at ..\libs\exception\test\exception_ptr_test.cpp:103
 #5 0x0041f143 in boost::detail::function::void_function_invoker0<void
 (*)(), void>::invoke (function_ptr=@0x252f18)
     at ../boost/function/function_template.hpp:112
 #6 0x004266b5 in boost::function0<void>::operator() (this=0x252f14)
     at ../boost/function/function_template.hpp:1013
 #7 0x004101ae in thread_handle::thread_wrapper (f=@0x252f14,
 ep=@0x252f24)
     at ..\libs\exception\test\exception_ptr_test.cpp:37
 #8 0x0041d267 in boost::_bi::list2<boost::_bi::value<boost::function<void
 ()()>
>,
 boost::_bi::value<boost::shared_ptr<boost::exception_detail::clone_base
 const> > >::operator()<void (*)(boost::function<void ()()> const&,
 boost::shared_ptr
 <boost::exception_detail::clone_base const>&), boost::_bi::list0> (
     this=0x252f14, f=@0x252f10, a=@0xcaff27) at ../boost/bind/bind.hpp:313
 #9 0x0041d44a in boost::_bi::bind_t<void, void (*)(boost::function<void
 ()()> const&, boost::shared_ptr<boost::exception_detail::clone_base
 const>&), boost::_bi::list2<boost::_bi::value<boost::function<void ()()>
>, boost::_bi::value<boost
 ::shared_ptr<boost::exception_detail::clone_base const> > > >::operator()
 (
     this=0x252f10) at ../boost/bind/bind_template.hpp:20
 #10 0x0041da64 in boost::detail::thread_data<boost::_bi::bind_t<void, void
 (*)(boost::function<void ()()> const&,
 boost::shared_ptr<boost::exception_detail::clone_base const>&),
 boost::_bi::list2<boost::_bi::value<boost::function<void ()()>
>,
 boost::_bi::value<boost::shared_ptr<boost::exception_detail::clone_base
 const> > > > >::run (this=0x252ef0) at
 ../boost/thread/detail/thread.hpp:61
 #11 0x00401b65 in thread_start_function (param=0x252ef0)
     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 ?? ()
 }}}

 These threads:
 {{{
 (gdb) info threads
 * 3 thread 944.0x1764 std::terminate ()
     at ../../../../gcc-4.4.0/libstdc++-v3/libsupc++/eh_terminate.cc:48
   2 thread 944.0x154c 0x6e946dbb in
 libgcc_s_dw2-1!_Unwind_Resume_or_Rethrow
     () from C:\Software\Open\lib\Qt\2010.05\mingw\bin\libgcc_s_dw2-1.dll
   1 thread 944.0x13c8 0x7c90e514 in ntdll!LdrAccessResource ()
    from C:\WINDOWS\system32\ntdll.dll
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/4769>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:04 UTC