gcc-4.8 on xenial test failure
jeking3 opened this issue · 1 comments
This did not happen on gcc 4.8 on trusty.
It is happening on gcc 4.8 that comes with xenial.
It seems similar to boostorg/dynamic_bitset#41
Both issues seem to revolve around basic_ios clear handling.
Here is a job where it fails:
https://travis-ci.org/boostorg/iostreams/jobs/525323038
Here is the output:
gcc.compile.c++ ../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.o
gcc.link ../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test
testing.capture-output ../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.run
====== BEGIN OUTPUT ======
Running 12 test cases...
unknown location(0): fatal error: in "stream state test/wrap_throw_delayed<&test_read>__execute": std::ios_base::failure[abi:cxx11]: basic_ios::clear: iostream error
../../libs/iostreams/test/stream_state_test.cpp(119): last checkpoint
unknown location(0): fatal error: in "stream state test/wrap_throw_delayed<&test_write>__execute": std::ios_base::failure[abi:cxx11]: basic_ios::clear: iostream error
../../libs/iostreams/test/stream_state_test.cpp(119): last checkpoint
unknown location(0): fatal error: in "stream state test/wrap_throw_delayed<&test_seekg>__execute": std::ios_base::failure[abi:cxx11]: basic_ios::clear: iostream error
../../libs/iostreams/test/stream_state_test.cpp(119): last checkpoint
unknown location(0): fatal error: in "stream state test/wrap_throw_delayed<&test_seekp>__execute": std::ios_base::failure[abi:cxx11]: basic_ios::clear: iostream error
../../libs/iostreams/test/stream_state_test.cpp(119): last checkpoint
*** 4 failures are detected in the test module "Master Test Suite"
EXIT STATUS: 201
====== END OUTPUT ======
LD_LIBRARY_PATH="/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/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test" > "../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.output" 2>&1 < /dev/null
status=$?
echo >> "../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.output"
echo EXIT STATUS: $status >> "../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.output"
if test $status -eq 0 ; then
cp "../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.output" "../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.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/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.output"
echo ====== END OUTPUT ======
fi
exit $status
...failed testing.capture-output ../../bin.v2/libs/iostreams/test/stream_state_test.test/gcc-4.8/release/cxxstd-03-iso/threading-multi/visibility-hidden/stream_state_test.run...
Given this does not happen on gcc 4.8 under travis but does under xenial, and does not happen on any other gcc we test in CI, it looks like an environmental issue or a bug in a specific release of the libstdc++ or compiler there.
The root cause for this is xenial comes with libstdc++5 or later with the new ABI. The fix is to build with gcc 4.8 using the trusty image instead. Once the boost-ci travis.yml is updated here, this issue will be resolved.