Page MenuHomePhabricator

Add an exception for UBSAN vptr on boost::unit_test::decorator::timeout
ClosedPublic

Authored by Fabien on Jun 30 2020, 08:37.

Details

Summary

This is a false positive.

Test Plan
cmake -GNinja .. -DCMAKE_BUILD_TYPE=Debug \
  -DENABLE_SANITIZERS=undefined \
  -DCMAKE_C_COMPILER=clang-8 -DCMAKE_CXX_COMPILER=clang++-8
ninja check-avalanche

Event Timeline

Fabien requested review of this revision.Jun 30 2020, 08:37

Snippet of first build failure:

[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] init_tests.walletinit_verify_walletdir_default
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] init_tests.walletinit_verify_walletdir_custom
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] init_tests.walletinit_verify_walletdir_does_not_exist
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] init_tests.walletinit_verify_walletdir_is_not_directory
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] init_tests.walletinit_verify_walletdir_is_not_relative
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] init_tests.walletinit_verify_walletdir_no_trailing
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] init_tests.walletinit_verify_walletdir_no_trailing2
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] ismine_tests.ismine_standard
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] psbt_wallet_tests.psbt_updater_test
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] psbt_wallet_tests.parse_hd_keypath
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.scan_for_wallet_transactions
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.importmulti_rescan
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.importwallet_rescan
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.coin_mark_dirty_immature_credit
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.ComputeTimeSmart
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.LoadReceiveRequests
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.ListCoins
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_tests.wallet_disableprivkeys
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] walletdb_tests.write_erase_name
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] walletdb_tests.write_erase_purpose
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] walletdb_tests.write_erase_destdata
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] walletdb_tests.no_dest_fails
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_crypto_tests.passphrase
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_crypto_tests.encrypt
[09:04:12]i:		 [Bitcoin_ABC_unit_tests_with_undefined_sanitizer] wallet_crypto_tests.decrypt
[09:04:35] :			 [Creating archive artifacts.tar.gz] Archive was created, file size 221.11 MB (231853545 bytes)
[09:04:35] :		 [Publishing artifacts] Publishing 1 file using [WebPublisher]: results/artifacts => artifacts.tar.gz
[09:04:36] :		 [Publishing artifacts] Publishing 1 file using [ArtifactsCachePublisher]: results/artifacts => artifacts.tar.gz
[09:04:11] :	 [Step 1/1] FAILED: src/avalanche/test/CMakeFiles/check-avalanche-avalanche_tests
[09:04:11]i:	 [Step 1/1] ##teamcity[publishArtifacts '+:results/artifacts=>artifacts.tar.gz']
[09:04:35] :	 [Step 1/1] 
[09:04:35] :	 [Step 1/1] cd /work/abc-ci-builds/build-ubsan/src/avalanche/test && /usr/bin/cmake -E env UBSAN_OPTIONS=suppressions=/work/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1: /work/cmake/utils/test_wrapper.sh avalanche_tests.log /work/abc-ci-builds/build-ubsan/src/avalanche/test/test-avalanche -t avalanche_tests -l test_suite
[09:04:35] :	 [Step 1/1] ../../src/avalanche/test/peermanager_tests.cpp:218:1: runtime error: member call on address 0x7fffed2b9c98 which does not point to an object of type 'boost::unit_test::decorator::base'
[09:04:35] :	 [Step 1/1] 0x7fffed2b9c98: note: object is of type 'boost::unit_test::decorator::timeout'
[09:04:35] :	 [Step 1/1]  7f 55 00 00  80 7a e3 d1 03 7f 00 00  05 00 00 00 7f 55 00 00  00 b4 a2 5f b9 e3 5b 53  d0 9c 2b ed
[09:04:35] :	 [Step 1/1]               ^~~~~~~~~~~~~~~~~~~~~~~
[09:04:35] :	 [Step 1/1]               vptr for 'boost::unit_test::decorator::timeout'
[09:04:35] :	 [Step 1/1]     #0 0x557f473e8731 in __cxx_global_var_init.77 /work/abc-ci-builds/build-ubsan/../../src/avalanche/test/peermanager_tests.cpp:218:1
[09:04:35] :	 [Step 1/1]     #1 0x557f473e88b0 in _GLOBAL__sub_I_peermanager_tests.cpp /work/abc-ci-builds/build-ubsan/../../src/avalanche/test/peermanager_tests.cpp
[09:04:35] :	 [Step 1/1]     #2 0x557f489c9504 in __libc_csu_init (/work/abc-ci-builds/build-ubsan/src/avalanche/test/test-avalanche+0x2aec504)
[09:04:35] :	 [Step 1/1]     #3 0x7f03d1114029 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24029)
[09:04:35] :	 [Step 1/1]     #4 0x557f47402679 in _start (/work/abc-ci-builds/build-ubsan/src/avalanche/test/test-avalanche+0x1525679)
[09:04:35] :	 [Step 1/1] 
[09:04:35] :	 [Step 1/1] [136/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[09:04:35] :	 [Step 1/1] [137/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[09:04:35] :	 [Step 1/1] [138/156] bitcoin: testing util_tests
[09:04:35] :	 [Step 1/1] [139/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[09:04:35] :	 [Step 1/1] [140/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[09:04:35] :	 [Step 1/1] [141/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[09:04:35] :	 [Step 1/1] [142/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[09:04:35] :	 [Step 1/1] [143/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[09:04:35] :	 [Step 1/1] [144/156] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[09:04:35] :	 [Step 1/1] [145/156] bitcoin: testing cuckoocache_tests
[09:04:35] :	 [Step 1/1] [146/156] bitcoin: testing coins_tests
[09:04:35] :	 [Step 1/1] [147/156] bitcoin: testing coinselector_tests
[09:04:35] :	 [Step 1/1] [148/156] secp256k1: testing secp256k1-tests
[09:04:35] :	 [Step 1/1] ninja: build stopped: subcommand failed.
[09:04:35] :	 [Step 1/1] Build build-ubsan failed with exit code 1
[09:04:35]W:	 [Step 1/1] Process exited with code 1
[09:04:44]E:	 [Step 1/1] Process exited with code 1 (Step: Command Line)

The bot build ran from master, there is a bug there

This revision is now accepted and ready to land.Jun 30 2020, 12:17