Opened 10 years ago

Closed 10 years ago

#7438 closed Bugs (fixed)

Segmentation fault in test_once regression test in group.join_all();

Reported by: greg.nowakowski@… Owned by: viboes
Milestone: Boost 1.52.0 Component: thread
Version: Boost 1.51.0 Severity: Regression
Keywords: join_all, thread, SIGSEGV Cc: kurt.miller@…

Description

Regression test in test_once causes SIGSEGV. The regression program seems to be right.

Regression package obtained using: python run.py --runner greg --toolsets=gcc-4.1.2 --libraries=filesystem,program_options,system,thread,test

Compiler: gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)

Backtrace:

 #0  0x00000000004105f6 in boost::checked_delete<boost::detail::thread_data<void (*)()> > (x=0x1412a1b0)
    at ../boost/checked_delete.hpp:34
 #1  0x00000000004106af in boost::detail::sp_counted_impl_p<boost::detail::thread_data<void (*)()> >::dispose (this=0x141276e0)
    at ../boost/smart_ptr/detail/sp_counted_impl.hpp:78
 #2  0x000000000040efa4 in boost::detail::sp_counted_base::release (this=0x141276e0)
    at ../boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:145
 #3  0x000000000040f000 in ~shared_count (this=0x7fffc98235c8) at ../boost/smart_ptr/detail/shared_count.hpp:305
 #4  0x000000000040f3c1 in ~shared_ptr (this=0x7fffc98235c0) at ../boost/smart_ptr/shared_ptr.hpp:159
 #5  0x00002aaaaacdc525 in boost::thread::join (this=0x141276c0) at ../libs/thread/src/pthread/thread.cpp:321
 #6  0x0000000000414d11 in boost::thread_group::join_all (this=0x7fffc9823710) at ../boost/thread/detail/thread_group.hpp:74
 #7  0x000000000040e6fe in test_call_once () at ../libs/thread/test/test_once.cpp:56
 #8  0x0000000000410295 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke (function_ptr=@0x14127608)
    at ../boost/function/function_template.hpp:112
 #9  0x0000000000485d87 in boost::function0<void>::operator() (this=0x14127600) at ../boost/function/function_template.hpp:767
 #10 0x0000000000485da9 in boost::detail::forward::operator() (this=0x7fffc9824738) at ../boost/test/impl/execution_monitor.ipp:1276
 #11 0x0000000000485dcd in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke (
    function_obj_ptr=@0x7fffc9824738) at ../boost/function/function_template.hpp:132
 #12 0x0000000000485e31 in boost::function0<int>::operator() (this=0x7fffc9824730) at ../boost/function/function_template.hpp:767
 #13 0x0000000000486417 in boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()()> > (tr=@0x6d6910, F=@0x7fffc9824730) at ../boost/test/impl/execution_monitor.ipp:256
 #14 0x0000000000484211 in boost::execution_monitor::catch_signals (this=0x6d6900, F=@0x7fffc9824730)
    at ../boost/test/impl/execution_monitor.ipp:839
 #15 0x0000000000484306 in boost::execution_monitor::execute (this=0x6d6900, F=@0x7fffc9824730)
    at ../boost/test/impl/execution_monitor.ipp:1183
 #16 0x0000000000484fdf in boost::execution_monitor::vexecute (this=0x6d6900, F=@0x14127600)
    at ../boost/test/impl/execution_monitor.ipp:1285
 #17 0x000000000047e7eb in boost::unit_test::unit_test_monitor_t::execute_and_translate (this=0x6d6900, func=@0x14127600, timeout=0)
    at ../boost/test/impl/unit_test_monitor.ipp:47
 #18 0x0000000000476462 in boost::unit_test::framework_impl::visit (this=0x6d6800, tc=@0x14127570)
    at ../boost/test/impl/framework.ipp:416
 #19 0x000000000041c23b in boost::unit_test::traverse_test_tree (tc=@0x14127570, V=@0x6d6800, ignore_status=false)
    at ../boost/test/impl/test_tree.ipp:212
 #20 0x000000000041cd46 in boost::unit_test::traverse_test_tree (id=65536, V=@0x6d6800, ignore_status=false)
    at ../boost/test/impl/test_tree.ipp:258
 #21 0x000000000041ca19 in boost::unit_test::traverse_test_tree (suite=@0x14127460, V=@0x6d6800, ignore_status=false)
    at ../boost/test/impl/test_tree.ipp:228
 #22 0x000000000041cd63 in boost::unit_test::traverse_test_tree (id=2, V=@0x6d6800, ignore_status=false)
    at ../boost/test/impl/test_tree.ipp:260
 #23 0x000000000041ca19 in boost::unit_test::traverse_test_tree (suite=@0x14125380, V=@0x6d6800, ignore_status=false)
    at ../boost/test/impl/test_tree.ipp:228
 #24 0x000000000041cd63 in boost::unit_test::traverse_test_tree (id=1, V=@0x6d6800, ignore_status=false)
    at ../boost/test/impl/test_tree.ipp:260
 #25 0x000000000046c187 in boost::unit_test::framework::run (id=1, continue_test=true) at ../boost/test/impl/framework.ipp:1045
 #26 0x0000000000423397 in boost::unit_test::unit_test_main (init_func=0x40ddda <init_unit_test_suite(int, char**)>, argc=1,
    argv=0x7fffc9824f08) at ../boost/test/impl/unit_test_main.ipp:104
 #27 0x00000000004235b1 in main (argc=1, argv=0x7fffc9824f08) at ../boost/test/impl/unit_test_main.ipp:159

Change History (5)

comment:1 by viboes, 10 years ago

Owner: changed from Anthony Williams to viboes
Status: newassigned

comment:2 by viboes, 10 years ago

Milestone: To Be DeterminedBoost 1.52.0

Committed in trunk [80759]

comment:3 by viboes, 10 years ago

Committed revision [80801].

comment:4 by viboes, 10 years ago

Milestone: Boost 1.52.0

comment:5 by viboes, 10 years ago

Milestone: Boost 1.52.0
Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.