I'm getting a segfault in Boost when
I go to use mutexes. I built the
Boost unit test for threads with the
following:
bjam "-sTOOLS=gcc" "-sBUILD debug <runtime-link>static
<threading>multi"
In Boost 1.32 there are errors with
text_mutex_lib:
root@unstable:~/scratch/boost_1_32_0/bin/boost/libs/thread/test/test_mutex_lib.test/gcc/debug/runtime-link-static/threading-multi>
./test_mutex_lib
Running 6 test cases...
Exception in "test_try_mutex":
signal: memory access
violation
/root/scratch/boost_1_32_0/libs/test/build/../src/unit_test_suite.cpp(150):
fatal error in "test_try_mutex": Testing aborted
Exception in
"test_recursive_mutex": signal: memory access
violation
/root/scratch/boost_1_32_0/libs/test/build/../src/unit_test_suite.cpp(150):
fatal error in "test_recursive_mutex": Testing aborted
Exception in
"test_recursive_try_mutex": signal: memory access
violation
/root/scratch/boost_1_32_0/libs/test/build/../src/unit_test_suite.cpp(150):
fatal error in "test_recursive_try_mutex": Testing aborted
Exception in
"test_recursive_timed_mutex": signal: memory
access
violation
/root/scratch/boost_1_32_0/libs/test/build/../src/unit_test_suite.cpp(150):
fatal error in "test_recursive_timed_mutex": Testing aborted
*** errors
detected in test suite "Boost.Threads: mutex test suite"; see
standard output
for details
[---]
In Boost 1.32 there are errors with
test_xtime_lib:
root@unstable:~/scratch/boost_1_32_0/bin/boost/libs/thread/test/test_xtime_lib.test/gcc/debug/runtime-link-static/threading-multi>
./test_xtime_lib
Running 2 test cases...
Exception in "test_xtime_cmp":
signal: memory access
violation
/root/scratch/boost_1_32_0/libs/test/build/../src/unit_test_suite.cpp(150):
fatal error in "test_xtime_cmp": Testing aborted
Exception in
"test_xtime_get": signal: memory access
violation
/root/scratch/boost_1_32_0/libs/test/build/../src/unit_test_suite.cpp(150):
fatal error in "test_xtime_get": Testing aborted
*** errors detected in
test suite "Boost.Threads: xtime test suite"; see
standard output for
details
Segmentation fault
[---]
In Boost 1.33 there are errors
with test_mutex_lib:
root@unstable:~/scratch/boost_1_33_0/bin/boost/libs/thread/test/test_mutex_lib.test/gcc/debug/runtime-link-static/threading-multi>
./test_mutex_lib
Running 6 test cases...
unknown location(0): fatal error
in "test_try_mutex": signal: memory
access violation
*** errors
detected in test suite "Boost.Threads: mutex test suite"; see
standard output
for details
[--]
In Boost 1.33 there are no errors with
test_xtime_lib:
root@unstable:~/scratch/boost_1_33_0/bin/boost/libs/thread/test/test_xtime_lib.test/gcc/debug/runtime-link-static/threading-multi>
./test_xtime_lib
Running 2 test cases...
*** No errors
detected
Well then, i'm thoroughly confused. It seems the unit test Boost
has are
making calls to libthreaddb.so (NPTL).
Anyone have any ideas?
I've reproduced this on 2 machines (opterons
246), 2 distros now. What really
boggles me is that the one xtime test
works on 1.33 but the mutex test
doesn't. Simple mutex calls work fine
however. Are these specific problems
with the test or something deeper?
I've seen no discussion on the mailing
list.