Skip to content

Instantly share code, notes, and snippets.

@PastaPastaPasta
Created November 19, 2024 16:06
Show Gist options
  • Save PastaPastaPasta/c966a9f805758b34524085e3d52ea7f8 to your computer and use it in GitHub Desktop.
Save PastaPastaPasta/c966a9f805758b34524085e3d52ea7f8 to your computer and use it in GitHub Desktop.
Traceback (most recent call last):
File "/Users/pasta/workspace/dash/test/functional/test_framework/test_framework.py", line 341, in shutdown
self.stop_nodes()
File "/Users/pasta/workspace/dash/test/functional/test_framework/test_framework.py", line 673, in stop_nodes
node.stop_node(expected_stderr=expected_stderr, wait=wait, wait_until_stopped=False)
File "/Users/pasta/workspace/dash/test/functional/test_framework/test_node.py", line 380, in stop_node
raise AssertionError("Unexpected stderr {} != {}".format(stderr, expected_stderr))
AssertionError: Unexpected stderr ==================
WARNING: ThreadSanitizer: data race (pid=25042)
Write of size 1 at 0x0001144ecb49 by thread T35 (mutexes: write M0):
#0 (anonymous namespace)::Peer::SetTxRelay() net_processing.cpp:315 (dashd:arm64+0x100405de8)
#1 (anonymous namespace)::PeerManagerImpl::ProcessMessage(CNode&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, CDataStream&, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000l>>, std::__1::atomic<bool> const&) net_processing.cpp:3537 (dashd:arm64+0x1003e05b0)
#2 (anonymous namespace)::PeerManagerImpl::ProcessMessages(CNode*, std::__1::atomic<bool>&) net_processing.cpp:5275 (dashd:arm64+0x1003eda98)
#3 non-virtual thunk to (anonymous namespace)::PeerManagerImpl::ProcessMessages(CNode*, std::__1::atomic<bool>&) net_processing.cpp (dashd:arm64+0x1003f4fe0)
#4 CConnman::ThreadMessageHandler() <null>:134243216 (dashd:arm64+0x1003a69c4)
#5 std::__1::__function::__func<CConnman::Start(CDeterministicMNManager&, CMasternodeMetaMan&, CMasternodeSync&, CScheduler&, CConnman::Options const&)::$_5, std::__1::allocator<CConnman::Start(CDeterministicMNManager&, CMasternodeMetaMan&, CMasternodeSync&, CScheduler&, CConnman::Options const&)::$_5>, void ()>::operator()() <null>:134243216 (dashd:arm64+0x1003c6258)
#6 util::TraceThread(char const*, std::__1::function<void ()>) thread.cpp:18 (dashd:arm64+0x100ab2108)
#7 void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(char const*, std::__1::function<void ()>), char const*, CConnman::Start(CDeterministicMNManager&, CMasternodeMetaMan&, CMasternodeSync&, CScheduler&, CConnman::Options const&)::$_5>>(void*) <null>:134243216 (dashd:arm64+0x1003c5e64)
Previous read of size 1 at 0x0001144ecb49 by thread T12:
#0 (anonymous namespace)::Peer::GetTxRelay() net_processing.cpp:326 (dashd:arm64+0x1003fe964)
#1 (anonymous namespace)::PeerManagerImpl::GetNodeStateStats(long long, CNodeStateStats&) const net_processing.cpp:1717 (dashd:arm64+0x1003dbe54)
#2 std::__1::__function::__func<getpeerinfo()::$_0, std::__1::allocator<getpeerinfo()::$_0>, UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) <null>:134243216 (dashd:arm64+0x100626f64)
#3 RPCHelpMan::HandleRequest(JSONRPCRequest const&) const util.cpp:540 (dashd:arm64+0x1009e8a44)
#4 CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const server.h:107 (dashd:arm64+0x100515c50)
#5 std::__1::__function::__func<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) function.h:311 (dashd:arm64+0x100515a9c)
#6 ExecuteCommands(std::__1::vector<CRPCCommand const*, std::__1::allocator<CRPCCommand const*>> const&, JSONRPCRequest const&, UniValue&, std::__1::multimap<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<UniValue, std::__1::allocator<UniValue>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<UniValue, std::__1::allocator<UniValue>>>>> const&) server.cpp:511 (dashd:arm64+0x1006ab5b8)
#7 CRPCTable::execute(JSONRPCRequest const&) const server.cpp:543 (dashd:arm64+0x1006aa4e8)
#8 std::__1::__function::__func<StartHTTPRPC(std::__1::variant<std::__1::monostate, std::__1::reference_wrapper<ArgsManager>, std::__1::reference_wrapper<NodeContext>, std::__1::reference_wrapper<WalletContext>, std::__1::reference_wrapper<CTxMemPool>, std::__1::reference_wrapper<ChainstateManager>, std::__1::reference_wrapper<CBlockPolicyEstimator>, std::__1::reference_wrapper<LLMQContext>> const&)::$_0, std::__1::allocator<StartHTTPRPC(std::__1::variant<std::__1::monostate, std::__1::reference_wrapper<ArgsManager>, std::__1::reference_wrapper<NodeContext>, std::__1::reference_wrapper<WalletContext>, std::__1::reference_wrapper<CTxMemPool>, std::__1::reference_wrapper<ChainstateManager>, std::__1::reference_wrapper<CBlockPolicyEstimator>, std::__1::reference_wrapper<LLMQContext>> const&)::$_0>, bool (HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()(HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) function.h:311 (dashd:arm64+0x10018e0f8)
#9 HTTPWorkItem::operator()() httpserver.cpp:52 (dashd:arm64+0x10019c6bc)
#10 WorkQueue<HTTPClosure>::Run() httpserver.cpp:124 (dashd:arm64+0x10019e7ac)
#11 HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) httpserver.cpp:372 (dashd:arm64+0x10019805c)
#12 void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>>(void*) thread.h:208 (dashd:arm64+0x10019f1ec)
Location is heap block of size 680 at 0x0001144eca00 allocated by thread T14:
#0 operator new(unsigned long) <null>:138420816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x84210)
#1 (anonymous namespace)::PeerManagerImpl::InitializeNode(CNode&, ServiceFlags) net_processing.cpp:1583 (dashd:arm64+0x1003ec198)
#2 non-virtual thunk to (anonymous namespace)::PeerManagerImpl::InitializeNode(CNode&, ServiceFlags) net_processing.cpp (dashd:arm64+0x1003f4ed0)
#3 CConnman::OpenNetworkConnection(CAddress const&, bool, CSemaphoreGrant&&, char const*, ConnectionType, bool, CConnman::MasternodeConn, CConnman::MasternodeProbeConn) <null>:134238704 (dashd:arm64+0x1003910a4)
#4 std::__1::__function::__func<addnode()::$_0, std::__1::allocator<addnode()::$_0>, UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) <null>:134238704 (dashd:arm64+0x100629794)
#5 RPCHelpMan::HandleRequest(JSONRPCRequest const&) const util.cpp:540 (dashd:arm64+0x1009e8a44)
#6 CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const server.h:107 (dashd:arm64+0x100515c50)
#7 std::__1::__function::__func<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) function.h:311 (dashd:arm64+0x100515a9c)
#8 ExecuteCommands(std::__1::vector<CRPCCommand const*, std::__1::allocator<CRPCCommand const*>> const&, JSONRPCRequest const&, UniValue&, std::__1::multimap<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<UniValue, std::__1::allocator<UniValue>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<UniValue, std::__1::allocator<UniValue>>>>> const&) server.cpp:511 (dashd:arm64+0x1006aadf4)
#9 CRPCTable::execute(JSONRPCRequest const&) const server.cpp:543 (dashd:arm64+0x1006aa4e8)
#10 std::__1::__function::__func<StartHTTPRPC(std::__1::variant<std::__1::monostate, std::__1::reference_wrapper<ArgsManager>, std::__1::reference_wrapper<NodeContext>, std::__1::reference_wrapper<WalletContext>, std::__1::reference_wrapper<CTxMemPool>, std::__1::reference_wrapper<ChainstateManager>, std::__1::reference_wrapper<CBlockPolicyEstimator>, std::__1::reference_wrapper<LLMQContext>> const&)::$_0, std::__1::allocator<StartHTTPRPC(std::__1::variant<std::__1::monostate, std::__1::reference_wrapper<ArgsManager>, std::__1::reference_wrapper<NodeContext>, std::__1::reference_wrapper<WalletContext>, std::__1::reference_wrapper<CTxMemPool>, std::__1::reference_wrapper<ChainstateManager>, std::__1::reference_wrapper<CBlockPolicyEstimator>, std::__1::reference_wrapper<LLMQContext>> const&)::$_0>, bool (HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()(HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) function.h:311 (dashd:arm64+0x10018e0f8)
#11 HTTPWorkItem::operator()() httpserver.cpp:52 (dashd:arm64+0x10019c6bc)
#12 WorkQueue<HTTPClosure>::Run() httpserver.cpp:124 (dashd:arm64+0x10019e7ac)
#13 HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) httpserver.cpp:372 (dashd:arm64+0x10019805c)
#14 void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>>(void*) thread.h:208 (dashd:arm64+0x10019f1ec)
Mutex M0 (0x0001053149e8) created at:
#0 pthread_mutex_trylock <null>:138420816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x31ad0)
#1 std::__1::mutex::try_lock() <null>:135268128 (libc++.1.dylib:arm64e+0x2277c)
#2 CConnman::ThreadMessageHandler() <null>:134243216 (dashd:arm64+0x1003a682c)
#3 std::__1::__function::__func<CConnman::Start(CDeterministicMNManager&, CMasternodeMetaMan&, CMasternodeSync&, CScheduler&, CConnman::Options const&)::$_5, std::__1::allocator<CConnman::Start(CDeterministicMNManager&, CMasternodeMetaMan&, CMasternodeSync&, CScheduler&, CConnman::Options const&)::$_5>, void ()>::operator()() <null>:134243216 (dashd:arm64+0x1003c6258)
#4 util::TraceThread(char const*, std::__1::function<void ()>) thread.cpp:18 (dashd:arm64+0x100ab2108)
#5 void* std::__1::__thread_proxy[abi:ne180100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(char const*, std::__1::function<void ()>), char const*, CConnman::Start(CDeterministicMNManager&, CMasternodeMetaMan&, CMasternodeSync&, CScheduler&, CConnman::Options const&)::$_5>>(void*) <null>:134243216 (dashd:arm64+0x1003c5e64)
Thread T35 (tid=5017899, running) created by main thread at:
#0 pthread_create <null>:138420816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x309d8)
#1 CConnman::Start(CDeterministicMNManager&, CMasternodeMetaMan&, CMasternodeSync&, CScheduler&, CConnman::Options const&) <null>:134217872 (dashd:arm64+0x1003abc44)
#2 AppInitMain(NodeContext&, interfaces::BlockAndHeaderTipInfo*) init.cpp:2527 (dashd:arm64+0x1001e7b34)
#3 main bitcoind.cpp:279 (dashd:arm64+0x1000028a4)
Thread T12 (tid=5017839, running) created by main thread at:
#0 pthread_create <null>:138420816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x309d8)
#1 std::__1::thread::thread<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, void>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) thread.h:218 (dashd:arm64+0x10019f0bc)
#2 std::__1::thread* std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::__emplace_back_slow_path<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) vector:1491 (dashd:arm64+0x10019ed4c)
#3 StartHTTPServer() httpserver.cpp:465 (dashd:arm64+0x100197990)
#4 AppInitMain(NodeContext&, interfaces::BlockAndHeaderTipInfo*) init.cpp:1536 (dashd:arm64+0x1001dfc64)
#5 main bitcoind.cpp:279 (dashd:arm64+0x1000028a4)
Thread T14 (tid=5017841, running) created by main thread at:
#0 pthread_create <null>:138420816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x309d8)
#1 std::__1::thread::thread<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, void>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) thread.h:218 (dashd:arm64+0x10019f0bc)
#2 std::__1::thread* std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::__emplace_back_slow_path<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) vector:1491 (dashd:arm64+0x10019ed4c)
#3 StartHTTPServer() httpserver.cpp:465 (dashd:arm64+0x100197990)
#4 AppInitMain(NodeContext&, interfaces::BlockAndHeaderTipInfo*) init.cpp:1536 (dashd:arm64+0x1001dfc64)
#5 main bitcoind.cpp:279 (dashd:arm64+0x1000028a4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment