WARNING: ThreadSanitizer: data race (pid=114132)
Read of size 8 at 0x7ba0000000b0 by thread T5 (mutexes: write M131488):
[#0](/bitcoin-bitcoin/0/) epoll_ctl <null> (bitcoind+0x8e332)
[#1](/bitcoin-bitcoin/1/) epoll_apply_one_change <null> (bitcoind+0x9822be)
[#2](/bitcoin-bitcoin/2/) decltype(std::__1::forward<bool (*)(event_base*)>(fp)(std::__1::forward<event_base*>(fp0))) std::__1::__invoke<bool (*)(event_base*), event_base*>(bool (*&&)(event_base*), event_base*&&) /usr/lib/llvm-10/bin/../include/c++/v1/type_traits:3539:1 (bitcoind+0x48e23c)
[#3](/bitcoin-bitcoin/3/) void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, bool (*)(event_base*), event_base*, 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, bool (*)(event_base*), event_base*>&, std::__1::__tuple_indices<2ul>) /usr/lib/llvm-10/bin/../include/c++/v1/thread:273:5 (bitcoind+0x48e23c)
[#4](/bitcoin-bitcoin/4/) void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, bool (*)(event_base*), event_base*> >(void*) /usr/lib/llvm-10/bin/../include/c++/v1/thread:284:5 (bitcoind+0x48e23c)
Previous write of size 8 at 0x7ba0000000b0 by thread T4 (mutexes: write M259):
[#0](/bitcoin-bitcoin/0/) open <null> (bitcoind+0x8bc30)
[#1](/bitcoin-bitcoin/1/) __os_openhandle <null> (bitcoind+0x8dcc48)
[#2](/bitcoin-bitcoin/2/) MaybeCompactWalletDB() /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/wallet/walletdb.cpp:954:21 (bitcoind+0x6255d8)
[#3](/bitcoin-bitcoin/3/) decltype(std::__1::forward<void (*&)()>(fp)()) std::__1::__invoke<void (*&)()>(void (*&)()) /usr/lib/llvm-10/bin/../include/c++/v1/type_traits:3539:1 (bitcoind+0x1520ef)
[#4](/bitcoin-bitcoin/4/) void std::__1::__invoke_void_return_wrapper<void>::__call<void (*&)()>(void (*&)()) /usr/lib/llvm-10/bin/../include/c++/v1/__functional_base:348:9 (bitcoind+0x1520ef)
[#5](/bitcoin-bitcoin/5/) std::__1::__function::__alloc_func<void (*)(), std::__1::allocator<void (*)()>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1540:16 (bitcoind+0x1520ef)
[#6](/bitcoin-bitcoin/6/) std::__1::__function::__func<void (*)(), std::__1::allocator<void (*)()>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1714:12 (bitcoind+0x1520ef)
[#7](/bitcoin-bitcoin/7/) std::__1::__function::__value_func<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:1867:16 (bitcoind+0x6f16c1)
[#8](/bitcoin-bitcoin/8/) std::__1::function<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:2473:12 (bitcoind+0x6f16c1)
[#9](/bitcoin-bitcoin/9/) Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/scheduler.cpp:104:5 (bitcoind+0x6f16c1)
[#10](/bitcoin-bitcoin/10/) Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1::operator()() const /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/scheduler.cpp:105:33 (bitcoind+0x6f1edb)
[#11](/bitcoin-bitcoin/11/) decltype(std::__1::forward<Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1&>(fp)()) std::__1::__invoke<Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1&>(Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1&) /usr/lib/llvm-10/bin/../include/c++/v1/type_traits:3539:1 (bitcoind+0x6f1edb)
[#12](/bitcoin-bitcoin/12/) void std::__1::__invoke_void_return_wrapper<void>::__call<Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1&>(Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1&) /usr/lib/llvm-10/bin/../include/c++/v1/__functional_base:348:9 (bitcoind+0x6f1edb)
[#13](/bitcoin-bitcoin/13/) std::__1::__function::__alloc_func<Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1, std::__1::allocator<Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1540:16 (bitcoind+0x6f1edb)
[#14](/bitcoin-bitcoin/14/) std::__1::__function::__func<Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1, std::__1::allocator<Repeat(CScheduler&, std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l> >)::$_1>, void ()>::operator()() /usr/lib/llvm-10/bin/../include/c++/v1/functional:1714:12 (bitcoind+0x6f1edb)
[#15](/bitcoin-bitcoin/15/) std::__1::__function::__value_func<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:1867:16 (bitcoind+0x6ef905)
[#16](/bitcoin-bitcoin/16/) std::__1::function<void ()>::operator()() const /usr/lib/llvm-10/bin/../include/c++/v1/functional:2473:12 (bitcoind+0x6ef905)
[#17](/bitcoin-bitcoin/17/) CScheduler::serviceQueue() /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/scheduler.cpp:60:17 (bitcoind+0x6ef905)
[#18](/bitcoin-bitcoin/18/) AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const::'lambda'()::operator()() const /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp:1343:84 (bitcoind+0x13f4a1)
[#19](/bitcoin-bitcoin/19/) void TraceThread<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const::'lambda'()>(char const*, AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const::'lambda'()) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/./util/system.h:438:9 (bitcoind+0x13f4a1)
[#20](/bitcoin-bitcoin/20/) AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp:1343:37 (bitcoind+0x13f4a1)
[#21](/bitcoin-bitcoin/21/) boost::detail::thread_data<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>::run() /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/share/../include/boost/thread/detail/thread.hpp:120:17 (bitcoind+0x13f4a1)
[#22](/bitcoin-bitcoin/22/) boost::(anonymous namespace)::thread_proxy(void*) <null> (bitcoind+0x879cae)
Location is file descriptor 11 created by main thread at:
[failed to restore the stack]
Mutex M131488 (0x7b0c000061e0) created at:
[#0](/bitcoin-bitcoin/0/) pthread_mutex_init <null> (bitcoind+0x89abd)
[#1](/bitcoin-bitcoin/1/) evthread_posix_lock_alloc <null> (bitcoind+0x96a65f)
[#2](/bitcoin-bitcoin/2/) AppInitServers(util::Ref const&, NodeContext&) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp:790:10 (bitcoind+0x130aee)
[#3](/bitcoin-bitcoin/3/) AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp:1370:14 (bitcoind+0x130aee)
[#4](/bitcoin-bitcoin/4/) AppInit(int, char**) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind.cpp:142:43 (bitcoind+0x1183e8)
[#5](/bitcoin-bitcoin/5/) main /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind.cpp:172:13 (bitcoind+0x1183e8)
Mutex M259 (0x55b959ade508) created at:
[#0](/bitcoin-bitcoin/0/) pthread_mutex_init <null> (bitcoind+0x89abd)
[#1](/bitcoin-bitcoin/1/) std::__1::recursive_mutex::recursive_mutex() <null> (libc++.so.1+0x83583)
[#2](/bitcoin-bitcoin/2/) __libc_csu_init <null> (bitcoind+0xb6de0c)
Thread T5 'b-http' (tid=114143, running) created by main thread at:
[#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x8853b)
[#1](/bitcoin-bitcoin/1/) std::__1::__libcpp_thread_create(unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-10/bin/../include/c++/v1/__threading_support:394:10 (bitcoind+0x48a5eb)
[#2](/bitcoin-bitcoin/2/) std::__1::thread::thread<bool (&)(event_base*), event_base*&, void>(bool (&)(event_base*), event_base*&) /usr/lib/llvm-10/bin/../include/c++/v1/thread:300:16 (bitcoind+0x48a5eb)
[#3](/bitcoin-bitcoin/3/) StartHTTPServer() /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/httpserver.cpp:432:21 (bitcoind+0x486b80)
[#4](/bitcoin-bitcoin/4/) AppInitServers(util::Ref const&, NodeContext&) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp:797:5 (bitcoind+0x130be5)
[#5](/bitcoin-bitcoin/5/) AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp:1370:14 (bitcoind+0x130be5)
[#6](/bitcoin-bitcoin/6/) AppInit(int, char**) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind.cpp:142:43 (bitcoind+0x1183e8)
[#7](/bitcoin-bitcoin/7/) main /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind.cpp:172:13 (bitcoind+0x1183e8)
Thread T4 'b-scheduler' (tid=114137, running) created by main thread at:
[#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x8853b)
[#1](/bitcoin-bitcoin/1/) boost::thread::start_thread_noexcept() <null> (bitcoind+0x879bad)
[#2](/bitcoin-bitcoin/2/) boost::thread::thread<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&>(AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/share/../include/boost/thread/detail/thread.hpp:269:13 (bitcoind+0x130612)
[#3](/bitcoin-bitcoin/3/) boost::thread* boost::thread_group::create_thread<AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>(AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6) /tmp/cirrus-ci-build/depends/x86_64-pc-linux-gnu/share/../include/boost/thread/detail/thread_group.hpp:79:60 (bitcoind+0x130612)
[#4](/bitcoin-bitcoin/4/) AppInitMain(util::Ref const&, NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/init.cpp:1343:17 (bitcoind+0x130612)
[#5](/bitcoin-bitcoin/5/) AppInit(int, char**) /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind.cpp:142:43 (bitcoind+0x1183e8)
[#6](/bitcoin-bitcoin/6/) main /tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind.cpp:172:13 (bitcoind+0x1183e8)
SUMMARY: ThreadSanitizer: data race (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind+0x8e332) in epoll_ctl
==================
-
fanquake commented at 1:41 AM on October 16, 2020: member
- fanquake added the label Bug on Oct 16, 2020
-
MarcoFalke commented at 5:33 PM on December 22, 2020: member
Closing for now. Anyone is welcome to investigate the suppressions. Ideally there'd be none, but we don't need to keep an open issue for every single one of them.
- MarcoFalke closed this on Dec 22, 2020
- DrahtBot locked this on Feb 15, 2022
Contributors
Labels
Linked (view graph)
#1 JSON-RPC support for mobile devices ("ultra-lightweight" clients)#2 Long-term, safe, store-of-value#3 Encrypt wallet#4 Export/Import wallet in a human readable, future-proof format#5 Make the version number the protocol version and not the client version#6 Treat wallet as a generic keystore#7 Block-header-only, faster startup client#8 RPC command to sign text with wallet private key#9 Fix for GUI on Macs and latest wxWidgets#10 Add address to listtransactions output#11 Nolisten patch#12 Monitor transactions and/or blocks#13 Messages with or about transactions#14 bitcoin: URI and/or bitcoin-request MIME type for click-to-pay#15 Option to specify external IP address#16 Mac UI issues#17 listaccounts method#18 Error when trying to send very precise amount#19 bitcoin(d) --help should output version number#20 JSON-RPC callback#21 Add time to category:move transactions#22 Update the list of hard-coded node IP addresses