Boost logo

Boost :

From: Doug Gregor (dgregor_at_[hidden])
Date: 2007-08-21 14:30:12


On Aug 21, 2007, at 1:52 PM, Ion Gaztañaga wrote:

> Doug Gregor wrote:
>> The "barrier_test" test from the interprocess library seems to be
>> hanging on Mac OS X 10.4 PowerPC, and is causing at least one of the
>> regression testers (OSL) to fail to submit nightly regression
>> results.
>
> Ummm. I have no MacOS or PowerPC to test this, so until I figure
> what's
> happening, what's the correct thing to do, remove the test from the
> test-suite?

I guess so :(

The problem only seems to occur on PowerPC Mac, because the test is
running fine on my Intel Mac. There's a gdb dump of the backtraces
for all running threads below.

        - Doug

(gdb) info threads
   11 process 2227 thread 0x2703 0x9002c448 in swtch_pri ()
   10 process 2227 thread 0x2603 0x9002c448 in swtch_pri ()
   9 process 2227 thread 0x2503 0x9002c448 in swtch_pri ()
   8 process 2227 thread 0x2403 0x9002c448 in swtch_pri ()
   7 process 2227 thread 0x2303 0x9002c448 in swtch_pri ()
   6 process 2227 thread 0x2203 0x9002c448 in swtch_pri ()
   5 process 2227 thread 0x2103 0x9002c448 in swtch_pri ()
   4 process 2227 thread 0x2003 0x9002c448 in swtch_pri ()
   3 process 2227 thread 0x1f03 0x9002c448 in swtch_pri ()
   2 process 2227 thread 0xc07 0x9002c448 in swtch_pri ()
* 1 process 2227 thread 0xd03 0x9002c4b8 in semaphore_wait_trap ()
(gdb) thread apply all bt

Thread 11 (process 2227 thread 0x2703):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0509bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0509c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0509e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0509dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 10 (process 2227 thread 0x2603):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0488bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0488c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0488e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0488dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 9 (process 2227 thread 0x2503):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0407bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0407c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0407e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0407dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 8 (process 2227 thread 0x2403):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0386bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0386c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0386e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0386dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 7 (process 2227 thread 0x2303):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0305bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0305c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0305e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0305dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 6 (process 2227 thread 0x2203):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0284bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0284c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0284e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0284dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 5 (process 2227 thread 0x2103):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0203bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0203c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0203e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0203dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 4 (process 2227 thread 0x2003):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0182bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0182c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0182e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0182dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 3 (process 2227 thread 0x1f03):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0101bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0101c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0101e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0101dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 2 (process 2227 thread 0xc07):
#0 0x9002c448 in swtch_pri ()
#1 0x9002c414 in sched_yield ()
#2 0x00006990 in boost::interprocess::detail::thread_yield ()
at ../../../boost/interprocess/detail/os_thread_functions.hpp:66
#3 0x0000a810 in
boost::interprocess::interprocess_condition::do_timed_wait
(this=0xd8ac, tout_enabled=false, abs_time=@0xf0080bc8, mut=@0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:113
#4 0x0000aa3c in
boost::interprocess::interprocess_condition::do_wait (this=0xd8ac,
mut=@0xd8a8) at ../../../boost/interprocess/sync/emulation/
interprocess_condition.hpp:70
#5 0x0000ab00 in
boost::interprocess::interprocess_condition::wait<boost::interprocess::s
coped_lock<boost::interprocess::interprocess_mutex> > (this=0xd8ac,
lock=@0xf0080c7c) at ../../../boost/interprocess/sync/
interprocess_condition.hpp:85
#6 0x0000abd4 in boost::interprocess::barrier::wait (this=0xd8a8)
at ../../../boost/interprocess/sync/emulation/
interprocess_barrier.hpp:40
#7 0x00003f40 in (anonymous namespace)::barrier_thread () at
barrier_test.cpp:41
#8 0x0000ae6c in
boost::detail::function::void_function_invoker0<void (*)(),
void>::invoke (function_ptr=@0xf0080e00) at ../../../boost/function/
function_template.hpp:104
#9 0x00228e00 in boost::function0<void,
std::allocator<boost::function_base> >::operator() (this=0xf0080dfc)
at ../../../boost/function/function_template.hpp:693
#10 0x00215a34 in thread_proxy (param=0xbffff24c) at ../../../libs/
thread/src/thread.cpp:126
#11 0x9002bd08 in _pthread_body ()

Thread 1 (process 2227 thread 0xd03):
#0 0x9002c4b8 in semaphore_wait_trap ()
#1 0x9005f388 in pthread_join ()
#2 0x00215804 in boost::thread::join (this=0x500330) at ../../../
libs/thread/src/thread.cpp:241
#3 0x00215960 in boost::thread_group::join_all (this=0xbffff380)
at ../../../libs/thread/src/thread.cpp:377
#4 0x000040cc in main () at barrier_test.cpp:63


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk