I am struggling with some unit tests that fail only on RHEL4 release build. They pass on RHEL4 debug,
RHEL5 release/debug, likewise also pass on win32, win64 (using either vc8 or vc9).. I've run the debug
RHEL4 mode using valgrind, using a minimal case that reproduces the problem and here's what I see
(I used the "full, no-reachable mode" to run valgrind; and I see the same output minus line #s, even
running valgrind on RHEL4 release build, since that is the only platform-build combo where the test failure
-----------------------------------------------------------------------------------------------------------------------------
==12285== Memcheck, a memory error detector.
==12285== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==12285== Using LibVEX rev 1575, a library for dynamic binary translation.
==12285== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==12285== Using valgrind-3.1.1, a dynamic binary instrumentation framework.
==12285== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==12285== For more details, rerun with: -v
==12285==
==12285== My PID = 12285, parent PID = 12284. Prog and args are:
==12285== ./xrestunittest_xconn_rescalerd
==12285==
==12285== Syscall param sigaltstack(ss) points to uninitialised byte(s)
==12285== at 0x3AD682EDA9: sigaltstack (in /lib64/tls/
libc-2.3.4.so)
==12285== by 0x6488638: boost::detail::signal_handler::~signal_handler() (in /net/
rpenas1.xcp.chevrontexaco.net/vol/vol2/data/grp2/sypb/devl/xrest/trunk/3rdparty/rh4_x86_64_gcc-3.4.3/boost-1.36.0/lib/libboost_unit_test_framework-gcc34-mt-1_36.so.1.36.0)
==12285== by 0x648975E: boost::execution_monitor::catch_signals(boost::unit_test::callback0<int> const&) (in /net/
rpenas1.xcp.chevrontexaco.net/vol/vol2/data/grp2/sypb/devl/xrest/trunk/3rdparty/rh4_x86_64_gcc-3.4.3/boost-1.36.0/lib/libboost_unit_test_framework-gcc34-mt-1_36.so.1.36.0)
==12285== by 0x6489813: boost::execution_monitor::execute(boost::unit_test::callback0<int> const&) (in /net/
rpenas1.xcp.chevrontexaco.net/vol/vol2/data/grp2/sypb/devl/xrest/trunk/3rdparty/rh4_x86_64_gcc-3.4.3/boost-1.36.0/lib/libboost_unit_test_framework-gcc34-mt-1_36.so.1.36.0)
==12285== by 0x648F2E4: boost::unit_test::framework::run(unsigned long, bool) (in /net/
rpenas1.xcp.chevrontexaco.net/vol/vol2/data/grp2/sypb/devl/xrest/trunk/3rdparty/rh4_x86_64_gcc-3.4.3/boost-1.36.0/lib/libboost_unit_test_framework-gcc34-mt-1_36.so.1.36.0)
==12285== by 0x649BD02: boost::unit_test::unit_test_main(bool (*)(), int, char**) (in /net/
rpenas1.xcp.chevrontexaco.net/vol/vol2/data/grp2/sypb/devl/xrest/trunk/3rdparty/rh4_x86_64_gcc-3.4.3/boost-1.36.0/lib/libboost_unit_test_framework-gcc34-mt-1_36.so.1.36.0)
==12285== by 0x4147F0: main (init.cpp:132)
==12285== Address 0x7FEFFF3B0 is on thread 1's stack
==12285==
==12285== ERROR SUMMARY: 6 errors from 1 contexts (suppressed: 4 from 1)
==12285== malloc/free: in use at exit: 190,112 bytes in 1,869 blocks.
==12285== malloc/free: 23,128 allocs, 21,259 frees, 2,520,845 bytes allocated.
==12285== For counts of detected errors, rerun with: -v
==12285== searching for pointers to 1,869 not-freed blocks.
==12285== checked 2,184,272 bytes.
==12285==
==12285== LEAK SUMMARY:
==12285== definitely lost: 0 bytes in 0 blocks.
==12285== possibly lost: 0 bytes in 0 blocks.
==12285== still reachable: 190,112 bytes in 1,869 blocks.
==12285== suppressed: 0 bytes in 0 blocks.
==12285== Reachable blocks (those to which a pointer was found) are not shown.
==12285== To see them, rerun with: --show-reachable=yes
---------------------------------------------------------------------------------------------
Any ideas from boost experts here on how to resolve this problem is sincerely appreciated..
--Thomas.