boostorg / test

The reference C++ unit testing framework (TDD, xUnit, C++03/11/14/17)
http://boost.org/libs/test
Boost Software License 1.0
183 stars 140 forks source link

Hang while testing Boost 1.69.0 on Fedora31 / x86_64 #248

Open trex58 opened 4 years ago

trex58 commented 4 years ago

Hi,

Using the official boost-1.69.0-9.fc31.spec.src.rpm and .spec file, just adding to the %check phase: cd status (../b2 %{?_smp_mflags} || true) I've got a hang while testing.

I provide here-after some gdb information about what happened.

The x86_64 machine has 16GB Memory, 16GB swap, 16 cores. The build & tests are done with -j4 .

Regards, Hope it helps.

Tony Reix [Uploading BuildTest.txt…]() [Uploading Data.txt…]()

trex58 commented 4 years ago

This issue is reproducible on another Fedora/x86_64 machine, which has 48 CPUs and 384GB memory. Build/tests were done with -j48 . The hang looks the same and at the same time during tests.

raffienficiaud commented 4 years ago

Hi, the links to the log files are empty. Would you please check that? thanks!

trex58 commented 4 years ago

Ooops. Sorry. A file was too big. Here they are.

Data.txt BuildTest.txt.gz

The hang appeared again on the 48 cores big machine (see below) with -j1. However, on the 16 cores machine, with -j4, the tests ran till the end.

├─rpmbuild -ba boost-1.69.0-9.fc31.spec │ └─sh -e /var/tmp/rpm-tmp.023ZuK │ └─sh -e /var/tmp/rpm-tmp.023ZuK │ └─b2 -j1 │ └─sh -c... │ └─util_ipc_reliab │ └─3*[{util_ipc_reliab}]

root 419717 419716 0 Jan16 ? 00:00:00 ../bin.v2/libs/log/test/util_ipc_reliable_mq.test/gcc-9.2.1/debug/threadapi-pthread/threading-multi/util_ipc_reliable_mq

(gdb) info thread Id Target Id Frame

trex58 commented 4 years ago

I saw the same hang on Fedora/PPC64LE :

====== END OUTPUT ====== ......... ...failed testing.capture-output ../bin.v2/libs/process/test/environment.test/gcc-9.2.1/debug/visibility-hidden/environment.run... gcc.compile.c++ ../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.o gcc.link ../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe testing.capture-output ../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.run

Details:

ps -edf | grep 2486735

root 2486735 1289775 0 déc.04 pts/7 00:01:56 ../b2 root 2594484 2486735 0 03:18 pts/7 00:00:00 /bin/sh -c LD_LIBRARY_PATH="/root/rpmbuild/BUILD/boost_1_69_0/bin.v2/libs/filesystem/build/gcc-9.2.1/debug/visibility-hidden:/root/rpmbuild/BUILD/boost_1_69_0/bin.v2/libs/system/build/gcc-9.2.1/debug/visibility-hidden:/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH status=0 if test $status -ne 0 ; then echo Skipping test execution due to testing.execute=off exit 0 fi "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe" > "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" 2>&1 < /dev/null status=$? echo >> "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" echo EXIT STATUS: $status >> "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" if test $status -eq 0 ; then cp "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" echo ====== END OUTPUT ====== fi exit $status

ps -edf | grep 2594484

root 2594484 2486735 0 03:18 pts/7 00:00:00 /bin/sh -c LD_LIBRARY_PATH="/root/rpmbuild/BUILD/boost_1_69_0/bin.v2/libs/filesystem/build/gcc-9.2.1/debug/visibility-hidden:/root/rpmbuild/BUILD/boost_1_69_0/bin.v2/libs/system/build/gcc-9.2.1/debug/visibility-hidden:/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH status=0 if test $status -ne 0 ; then echo Skipping test execution due to testing.execute=off exit 0 fi "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe" > "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" 2>&1 < /dev/null status=$? echo >> "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" echo EXIT STATUS: $status >> "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" if test $status -eq 0 ; then cp "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe.output" echo ====== END OUTPUT ====== fi exit $status root 2594485 2594484 0 03:18 pts/7 00:00:00 ../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe

ps -edf | grep 2594485

root 2594485 2594484 0 03:18 pts/7 00:00:00 ../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe root 2603242 1289707 0 10:58 pts/0 00:00:00 grep --color=auto 2594485 [root@castordbe SPECS]# pstree 2486735 b2───sh───async_pipe───19*[{async_pipe}]

ps -edf | grep 2594485

root 2594485 2594484 0 03:18 pts/7 00:00:00 ../bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe root 2603251 1289707 0 10:58 pts/0 00:00:00 grep --color=auto 2594485

cd $BUILD

cd boost_1_69_0/

ll ./bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe

-rwxr-xr-x 1 root root 7741720 5 déc. 03:18 ./bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe

file ./bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe

./bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe: ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld64.so.2, BuildID[sha1]=349899f6052dec92ad3db92a17ee7cd37d8ebb47, for GNU/Linux 3.10.0, with debug_info, not stripped

gdb ./bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe

GNU gdb (GDB) Fedora 8.3.50.20190824-25.fc31 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "ppc64le-redhat-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/. Find the GDB manual and other documentation resources online at: http://www.gnu.org/software/gdb/documentation/.

For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe... (gdb) attach 2594485 Attaching to program: /root/rpmbuild/BUILD/boost_1_69_0/bin.v2/libs/process/test/async_pipe.test/gcc-9.2.1/debug/visibility-hidden/async_pipe, process 2594485 [New LWP 2594487] [New LWP 2594488] [New LWP 2594489] [New LWP 2594490] [New LWP 2594491] [New LWP 2594493] [New LWP 2594495] [New LWP 2594497] [New LWP 2594500] [New LWP 2594503] [New LWP 2594506] [New LWP 2594507] [New LWP 2594508] [New LWP 2594510] [New LWP 2594511] [New LWP 2594513] [New LWP 2594514] [New LWP 2594515] [New LWP 2594517] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". 0x00007fff94bbb3c4 in __pthread_timedjoin_ex () from /usr/lib64/libpthread.so.0 Missing separate debuginfos, use: dnf debuginfo-install glibc-2.30-7.fc31.ppc64le libgcc-9.2.1-1.fc31.ppc64le libstdc++-9.2.1-1.fc31.ppc64le (gdb) i thread Id Target Id Frame