2018-11-23 15:38:08 +01:00
|
|
|
# ThreadSanitizer suppressions
|
|
|
|
# ============================
|
2020-12-23 12:32:29 +01:00
|
|
|
#
|
|
|
|
# https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions
|
2018-11-23 15:38:08 +01:00
|
|
|
|
2022-01-10 18:31:45 +01:00
|
|
|
# Data races from zmq namespace
|
|
|
|
race:zmq::*
|
|
|
|
|
2023-06-01 16:57:52 +02:00
|
|
|
# race (TODO fix)
|
|
|
|
race:validation_chainstatemanager_tests
|
|
|
|
|
2020-06-03 15:26:39 +02:00
|
|
|
# double locks (TODO fix)
|
|
|
|
mutex:g_genesis_wait_mutex
|
|
|
|
mutex:Interrupt
|
|
|
|
mutex:CThreadInterrupt
|
|
|
|
mutex:CConnman::Interrupt
|
|
|
|
mutex:CConnman::WakeMessageHandler
|
|
|
|
mutex:CConnman::ThreadOpenConnections
|
|
|
|
mutex:CConnman::ThreadOpenAddedConnections
|
|
|
|
mutex:CConnman::SocketHandler
|
|
|
|
mutex:UpdateTip
|
|
|
|
mutex:PeerLogicValidation::UpdatedBlockTip
|
2020-06-05 09:58:34 +02:00
|
|
|
mutex:g_best_block_mutex
|
2020-06-03 15:26:39 +02:00
|
|
|
# race (TODO fix)
|
|
|
|
race:CConnman::WakeMessageHandler
|
|
|
|
race:CConnman::ThreadMessageHandler
|
|
|
|
race:fHaveGenesis
|
|
|
|
race:ProcessNewBlock
|
|
|
|
race:ThreadImport
|
2020-07-02 16:21:40 +02:00
|
|
|
race:LoadWallet
|
2020-06-05 09:58:34 +02:00
|
|
|
race:WalletBatch::WriteHDChain
|
2020-07-06 01:06:00 +02:00
|
|
|
race:BerkeleyBatch
|
2020-06-10 15:22:58 +02:00
|
|
|
race:BerkeleyDatabase
|
2020-06-03 15:26:39 +02:00
|
|
|
race:zmq::*
|
|
|
|
race:bitcoin-qt
|
|
|
|
# deadlock (TODO fix)
|
|
|
|
deadlock:CConnman::ForNode
|
2020-06-05 09:58:34 +02:00
|
|
|
deadlock:CConnman::GetNodeStats
|
|
|
|
deadlock:CChainState::ConnectTip
|
2020-06-03 15:26:39 +02:00
|
|
|
deadlock:UpdateTip
|
2020-11-12 09:32:53 +01:00
|
|
|
deadlock:wallet_tests::CreateWallet
|
2020-06-03 15:26:39 +02:00
|
|
|
|
2018-11-23 15:38:08 +01:00
|
|
|
# WalletBatch (unidentified deadlock)
|
|
|
|
deadlock:WalletBatch
|
|
|
|
|
2022-01-10 18:31:45 +01:00
|
|
|
# deadlock false positive (see: https://github.com/dashpay/dash/pull/4563)
|
|
|
|
deadlock:CChainState::ConnectTip
|
|
|
|
|
2018-11-23 15:38:08 +01:00
|
|
|
# Intentional deadlock in tests
|
2021-04-14 16:51:25 +02:00
|
|
|
deadlock:sync_tests::potential_deadlock_detected
|
2018-11-23 15:38:08 +01:00
|
|
|
|
2018-12-18 18:34:56 +01:00
|
|
|
# fRPCRunning race
|
|
|
|
race:InterruptRPC
|
|
|
|
|
2018-11-23 15:38:08 +01:00
|
|
|
# Wildcard for all gui tests, should be replaced with non-wildcard suppressions
|
|
|
|
race:src/qt/test/*
|
|
|
|
deadlock:src/qt/test/*
|
|
|
|
|
2018-12-18 18:34:56 +01:00
|
|
|
# External libraries
|
|
|
|
deadlock:libdb
|
|
|
|
race:libzmq
|
2020-12-22 18:22:49 +01:00
|
|
|
|
2020-12-23 12:32:29 +01:00
|
|
|
# Intermittent issues
|
|
|
|
# -------------------
|
|
|
|
#
|
|
|
|
# Suppressions that follow might only happen intermittently, thus they are not
|
|
|
|
# reproducible. Make sure to include a link to a full trace.
|
|
|
|
|
|
|
|
# https://github.com/bitcoin/bitcoin/issues/20618
|
|
|
|
race:CZMQAbstractPublishNotifier::SendZmqMessage
|
|
|
|
|
2020-12-22 18:22:49 +01:00
|
|
|
# https://github.com/bitcoin/bitcoin/pull/20218, https://github.com/bitcoin/bitcoin/pull/20745
|
|
|
|
race:epoll_ctl
|
2021-11-10 13:05:24 +01:00
|
|
|
|
|
|
|
# https://github.com/bitcoin/bitcoin/issues/23366
|
Merge bitcoin/bitcoin#24426: test: Fix intermittent Tsan issue
fa7e1471c0dcd6770a724da4a63d433fc9b4cbc1 test: Fix intermittent Tsan issue (MarcoFalke)
Pull request description:
Fix https://cirrus-ci.com/task/5176769937408000?logs=ci#L5161
```
WARNING: ThreadSanitizer: data race (pid=22965)
Write of size 8 at 0x7f74d5e21f50 by main thread:
#0 std::__1::ios_base::precision(long) /usr/lib/llvm-13/bin/../include/c++/v1/ios:513:18 (test_bitcoin+0x1a8366)
#1 boost::io::ios_base_all_saver::restore() /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/io/ios_state.hpp:341:17 (test_bitcoin+0x1a8366)
#2 boost::unit_test::unit_test_log_t::operator<<(boost::unit_test::log::begin const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_log.ipp:336:55 (test_bitcoin+0x1a8366)
#3 boost::test_tools::tt_detail::report_assertion(boost::test_tools::assertion_result const&, boost::unit_test::lazy_ostream const&, boost::unit_test::basic_cstring<char const>, unsigned long, boost::test_tools::tt_detail::tool_level, boost::test_tools::tt_detail::check_type, unsigned long, ...) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/test_tools.ipp:359:19 (test_bitcoin+0x1b3b9b)
#4 txindex_tests::txindex_initial_sync::test_method() src/test/txindex_tests.cpp:31:5 (test_bitcoin+0x78aebc)
#5 txindex_tests::txindex_initial_sync_invoker() src/test/txindex_tests.cpp:16:1 (test_bitcoin+0x78a384)
#6 boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11 (test_bitcoin+0x2bf30d)
#7 boost::function0<void>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14 (test_bitcoin+0x224027)
#8 boost::detail::forward::operator()() /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1368:32 (test_bitcoin+0x224027)
#9 boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18 (test_bitcoin+0x224027)
#10 boost::function0<int>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14 (test_bitcoin+0x1ac66c)
#11 int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()> >(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:290:30 (test_bitcoin+0x1ac66c)
#12 boost::execution_monitor::catch_signals(boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:879:16 (test_bitcoin+0x1ac66c)
#13 boost::execution_monitor::execute(boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1277:16 (test_bitcoin+0x1ac980)
#14 boost::execution_monitor::vexecute(boost::function<void ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1377:5 (test_bitcoin+0x1a7f9b)
#15 boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_monitor.ipp:49:9 (test_bitcoin+0x1a7f9b)
#16 boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:823:44 (test_bitcoin+0x1e0d5c)
#17 boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:792:58 (test_bitcoin+0x1e14a6)
#18 boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:792:58 (test_bitcoin+0x1e14a6)
#19 boost::unit_test::framework::run(unsigned long, bool) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:1696:29 (test_bitcoin+0x1a6bfb)
#20 boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:248:9 (test_bitcoin+0x1c4ed6)
#21 main /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:304:12 (test_bitcoin+0x1c5506)
Previous write of size 8 at 0x7f74d5e21f50 by thread T4:
[failed to restore the stack]
Location is global 'std::__1::cout' of size 160 at 0x7f74d5e21f30 (libc++.so.1+0x0000000cdf50)
Thread T4 'b-txindex' (tid=22989, running) created by main thread at:
#0 pthread_create <null> (test_bitcoin+0x1184cd)
#1 std::__1::__libcpp_thread_create(unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-13/bin/../include/c++/v1/__threading_support:514:10 (test_bitcoin+0xa23f1b)
#2 std::__1::thread::thread<void (*)(char const*, std::__1::function<void ()>), char const*, BaseIndex::Start(CChainState&)::$_0, void>(void (*&&)(char const*, std::__1::function<void ()>), char const*&&, BaseIndex::Start(CChainState&)::$_0&&) /usr/lib/llvm-13/bin/../include/c++/v1/thread:307:16 (test_bitcoin+0xa23f1b)
#3 BaseIndex::Start(CChainState&) src/index/base.cpp:363:21 (test_bitcoin+0xa23f1b)
#4 txindex_tests::txindex_initial_sync::test_method() src/test/txindex_tests.cpp:31:5 (test_bitcoin+0x78adfa)
#5 txindex_tests::txindex_initial_sync_invoker() src/test/txindex_tests.cpp:16:1 (test_bitcoin+0x78a384)
#6 boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11 (test_bitcoin+0x2bf30d)
#7 boost::function0<void>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14 (test_bitcoin+0x224027)
#8 boost::detail::forward::operator()() /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1368:32 (test_bitcoin+0x224027)
#9 boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18 (test_bitcoin+0x224027)
#10 boost::function0<int>::operator()() const /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14 (test_bitcoin+0x1ac66c)
#11 int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()> >(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:290:30 (test_bitcoin+0x1ac66c)
#12 boost::execution_monitor::catch_signals(boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:879:16 (test_bitcoin+0x1ac66c)
#13 boost::execution_monitor::execute(boost::function<int ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1277:16 (test_bitcoin+0x1ac980)
#14 boost::execution_monitor::vexecute(boost::function<void ()> const&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1377:5 (test_bitcoin+0x1a7f9b)
#15 boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_monitor.ipp:49:9 (test_bitcoin+0x1a7f9b)
#16 boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:823:44 (test_bitcoin+0x1e0d5c)
#17 boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:792:58 (test_bitcoin+0x1e14a6)
#18 boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:792:58 (test_bitcoin+0x1e14a6)
#19 boost::unit_test::framework::run(unsigned long, bool) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:1696:29 (test_bitcoin+0x1a6bfb)
#20 boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:248:9 (test_bitcoin+0x1c4ed6)
#21 main /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:304:12 (test_bitcoin+0x1c5506)
SUMMARY: ThreadSanitizer: data race /usr/lib/llvm-13/bin/../include/c++/v1/ios:513:18 in std::__1::ios_base::precision(long)
==================
Exit status: 2
ACKs for top commit:
fanquake:
CI ignored ACK fa7e1471c0dcd6770a724da4a63d433fc9b4cbc1
Tree-SHA512: 5194e026410b96ad3c8addeecce0a55ee0271c3cfac9fa0715345b1a50d59925549cee0a3e415e5837ae6d2f214a7b622c73cfc7fdf41d5e55c24fb87fddb9d1
2022-02-23 12:40:24 +01:00
|
|
|
race:std::__1::ios_base::*
|