rpc: pathHandlers is not protected by any locks (data race) #19341

issue MarcoFalke opened this issue on June 20, 2020
  1. MarcoFalke commented at 11:30 PM on June 20, 2020: member

    It is accessed by at least two threads:

    • [shutoff] in UnregisterHTTPHandler
    • [http] in http_request_cb
  2. MarcoFalke added the label Bug on Jun 20, 2020
  3. MarcoFalke added the label RPC/REST/ZMQ on Jun 20, 2020
  4. hebasto commented at 6:23 PM on June 21, 2020: member

    Do we have logs from sanitizers?

  5. MarcoFalke commented at 8:00 PM on June 21, 2020: member

    Sanitizer logs can be generated if needed, but they shouldn't contain any additional information

  6. MarcoFalke commented at 8:52 AM on September 7, 2022: member

    Diff to produce sanitizer logs:

    diff --git a/test/functional/rpc_blockchain.py b/test/functional/rpc_blockchain.py
    index d8147b3355..aff002577c 100755
    --- a/test/functional/rpc_blockchain.py
    +++ b/test/functional/rpc_blockchain.py
    @@ -67,6 +67,25 @@ class BlockchainTest(BitcoinTestFramework):
             self.supports_cli = False
     
         def run_test(self):
    +        import time
    +
    +        def gbci():
    +            while True:
    +                try:
    +                    print(self.nodes[0].getblockchaininfo())
    +                except:
    +                    return
    +
    +        import threading
    +        t = threading.Thread(target=gbci)
    +        t.start()
    +        time.sleep(0.1)
    +        self.nodes[0].process.terminate()  # stop_node does not work for some reason
    +        assert_equal(0, self.nodes[0].process.wait())
    +        self.nodes[0].running = False
    +        self.nodes[0].process = None
    +        t.join()
    +        return
             self.wallet = MiniWallet(self.nodes[0])
             self.mine_chain()
             self._test_max_future_block_time()
    
  7. MarcoFalke commented at 9:23 AM on September 7, 2022: member

    <details><summary>example log:</summary>

     test  2022-09-07T09:22:44.635000Z TestFramework (ERROR): Assertion failed 
                                       Traceback (most recent call last):
                                         File "/root/bitcoin-core/test/functional/test_framework/test_framework.py", line 133, in main
                                           self.run_test()
                                         File "/root/bitcoin-core/test/functional/rpc_blockchain.py", line 84, in run_test
                                           assert_equal(0, self.nodes[0].process.wait())
                                         File "/root/bitcoin-core/test/functional/test_framework/util.py", line 56, in assert_equal
                                           raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
                                       AssertionError: not(0 == 66)
     test  2022-09-07T09:22:44.636000Z TestFramework (DEBUG): Closing down network thread 
     test  2022-09-07T09:22:44.686000Z TestFramework (INFO): Stopping nodes 
     test  2022-09-07T09:22:44.686000Z TestFramework.node0 (DEBUG): Stopping node 
    
     node0 stderr ==================
    WARNING: ThreadSanitizer: data race (pid=56291)
      Write of size 8 at 0x558a6e7a4330 by main thread (mutexes: write M0):
        [#0](/bitcoin-bitcoin/0/) std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> >::_M_erase(__gnu_cxx::__normal_iterator<HTTPPathHandler*, std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> > >) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc:176:7 (bitcoind+0x582a93) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> >::erase(__gnu_cxx::__normal_iterator<HTTPPathHandler const*, std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> > >) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1431:16 (bitcoind+0x582a93)
        [#2](/bitcoin-bitcoin/2/) UnregisterHTTPHandler(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/./src/httpserver.cpp:690:22 (bitcoind+0x582a93)
        [#3](/bitcoin-bitcoin/3/) StopHTTPRPC() src/./src/httprpc.cpp:320:5 (bitcoind+0x572c7a) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#4](/bitcoin-bitcoin/4/) Shutdown(node::NodeContext&) src/./src/init.cpp:226:5 (bitcoind+0x11e784) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#5](/bitcoin-bitcoin/5/) AppInit(node::NodeContext&, int, char**) src/./src/bitcoind.cpp:254:5 (bitcoind+0x11a8cf) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#6](/bitcoin-bitcoin/6/) main src/./src/bitcoind.cpp:278:13 (bitcoind+0x11a8cf)
    
      Previous read of size 8 at 0x558a6e7a4330 by thread T17:
        [#0](/bitcoin-bitcoin/0/) __gnu_cxx::__normal_iterator<HTTPPathHandler*, std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> > >::__normal_iterator(HTTPPathHandler* const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_iterator.h:1011:20 (bitcoind+0x57e2e4) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> >::end() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:830:16 (bitcoind+0x57e2e4)
        [#2](/bitcoin-bitcoin/2/) http_request_cb(evhttp_request*, void*) src/./src/httpserver.cpp:247:70 (bitcoind+0x57e2e4)
        [#3](/bitcoin-bitcoin/3/) <null> <null> (libevent-2.1.so.7+0x3be9b) (BuildId: 4c26f7362d55dd3d9504a9fe94805a6235d480c7)
        [#4](/bitcoin-bitcoin/4/) bool std::__invoke_impl<bool, bool (*)(event_base*), event_base*>(std::__invoke_other, bool (*&&)(event_base*), event_base*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 (bitcoind+0x586f07) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#5](/bitcoin-bitcoin/5/) std::__invoke_result<bool (*)(event_base*), event_base*>::type std::__invoke<bool (*)(event_base*), event_base*>(bool (*&&)(event_base*), event_base*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14 (bitcoind+0x586f07)
        [#6](/bitcoin-bitcoin/6/) bool std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:253:13 (bitcoind+0x586f07)
        [#7](/bitcoin-bitcoin/7/) std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:260:11 (bitcoind+0x586f07)
        [#8](/bitcoin-bitcoin/8/) std::thread::_State_impl<std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:211:13 (bitcoind+0x586f07)
        [#9](/bitcoin-bitcoin/9/) <null> <null> (libstdc++.so.6+0xdc2c2) (BuildId: 725ef5da52ee6d881f9024d8238a989903932637)
    
      Location is global 'pathHandlers' of size 24 at 0x558a6e7a4328 (bitcoind+0x1ee7330)
    
      Mutex M0 (0x558a6e79ef70) created at:
        [#0](/bitcoin-bitcoin/0/) pthread_mutex_trylock <null> (bitcoind+0x998fa) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) __gthread_mutex_trylock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:758:12 (bitcoind+0x11e640) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#2](/bitcoin-bitcoin/2/) std::mutex::try_lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_mutex.h:111:15 (bitcoind+0x11e640)
        [#3](/bitcoin-bitcoin/3/) std::unique_lock<std::mutex>::try_lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_lock.h:153:27 (bitcoind+0x11e640)
        [#4](/bitcoin-bitcoin/4/) UniqueLock<AnnotatedMixin<std::mutex>, std::unique_lock<std::mutex> >::TryEnter(char const*, char const*, int) src/./sync.h:168:15 (bitcoind+0x11e640)
        [#5](/bitcoin-bitcoin/5/) UniqueLock<AnnotatedMixin<std::mutex>, std::unique_lock<std::mutex> >::UniqueLock(AnnotatedMixin<std::mutex>&, char const*, char const*, int, bool) src/./sync.h:179:13 (bitcoind+0x11e640)
        [#6](/bitcoin-bitcoin/6/) Shutdown(node::NodeContext&) src/./src/init.cpp:214:5 (bitcoind+0x11e640)
        [#7](/bitcoin-bitcoin/7/) AppInit(node::NodeContext&, int, char**) src/./src/bitcoind.cpp:254:5 (bitcoind+0x11a8cf) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#8](/bitcoin-bitcoin/8/) main src/./src/bitcoind.cpp:278:13 (bitcoind+0x11a8cf)
    
      Thread T17 'b-http' (tid=56736, running) created by main thread at:
        [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x97e3d) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xdc398) (BuildId: 725ef5da52ee6d881f9024d8238a989903932637)
        [#2](/bitcoin-bitcoin/2/) AppInitServers(node::NodeContext&) src/./src/init.cpp:650:5 (bitcoind+0x13becf) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#3](/bitcoin-bitcoin/3/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) src/./src/init.cpp:1178:14 (bitcoind+0x133b78) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#4](/bitcoin-bitcoin/4/) AppInit(node::NodeContext&, int, char**) src/./src/bitcoind.cpp:234:43 (bitcoind+0x119ac1) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#5](/bitcoin-bitcoin/5/) main src/./src/bitcoind.cpp:278:13 (bitcoind+0x119ac1)
    
    SUMMARY: ThreadSanitizer: data race /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc:176:7 in std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> >::_M_erase(__gnu_cxx::__normal_iterator<HTTPPathHandler*, std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> > >)
    ==================
    ==================
    WARNING: ThreadSanitizer: data race (pid=56291)
      Write of size 8 at 0x7b04000008b0 by main thread (mutexes: write M0):
        [#0](/bitcoin-bitcoin/0/) operator delete(void*) <null> (bitcoind+0x11848e) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) std::_Function_base::_Base_manager<StartHTTPRPC(std::any const&)::$_0>::_M_destroy(std::_Any_data&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:175:4 (bitcoind+0x576180) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#2](/bitcoin-bitcoin/2/) std::_Function_base::_Base_manager<StartHTTPRPC(std::any const&)::$_0>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:203:8 (bitcoind+0x576180)
        [#3](/bitcoin-bitcoin/3/) std::_Function_handler<bool (HTTPRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), StartHTTPRPC(std::any const&)::$_0>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:282:6 (bitcoind+0x576180)
        [#4](/bitcoin-bitcoin/4/) std::_Function_base::~_Function_base() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:244:2 (bitcoind+0x582aba) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#5](/bitcoin-bitcoin/5/) HTTPPathHandler::~HTTPPathHandler() src/./src/httpserver.cpp:123:8 (bitcoind+0x582aba)
        [#6](/bitcoin-bitcoin/6/) void __gnu_cxx::new_allocator<HTTPPathHandler>::destroy<HTTPPathHandler>(HTTPPathHandler*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/ext/new_allocator.h:168:10 (bitcoind+0x582aba)
        [#7](/bitcoin-bitcoin/7/) void std::allocator_traits<std::allocator<HTTPPathHandler> >::destroy<HTTPPathHandler>(std::allocator<HTTPPathHandler>&, HTTPPathHandler*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:535:8 (bitcoind+0x582aba)
        [#8](/bitcoin-bitcoin/8/) std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> >::_M_erase(__gnu_cxx::__normal_iterator<HTTPPathHandler*, std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> > >) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/vector.tcc:177:7 (bitcoind+0x582aba)
        [#9](/bitcoin-bitcoin/9/) std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> >::erase(__gnu_cxx::__normal_iterator<HTTPPathHandler const*, std::vector<HTTPPathHandler, std::allocator<HTTPPathHandler> > >) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_vector.h:1431:16 (bitcoind+0x582aba)
        [#10](/bitcoin-bitcoin/10/) UnregisterHTTPHandler(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) src/./src/httpserver.cpp:690:22 (bitcoind+0x582aba)
        [#11](/bitcoin-bitcoin/11/) StopHTTPRPC() src/./src/httprpc.cpp:320:5 (bitcoind+0x572c7a) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#12](/bitcoin-bitcoin/12/) Shutdown(node::NodeContext&) src/./src/init.cpp:226:5 (bitcoind+0x11e784) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#13](/bitcoin-bitcoin/13/) AppInit(node::NodeContext&, int, char**) src/./src/bitcoind.cpp:254:5 (bitcoind+0x11a8cf) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#14](/bitcoin-bitcoin/14/) main src/./src/bitcoind.cpp:278:13 (bitcoind+0x11a8cf)
    
      Previous read of size 8 at 0x7b04000008b0 by thread T17:
        [#0](/bitcoin-bitcoin/0/) std::any::has_value() const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/any:327:46 (bitcoind+0x576117) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) std::any::any(std::any const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/any:157:20 (bitcoind+0x576117)
        [#2](/bitcoin-bitcoin/2/) StartHTTPRPC(std::any const&)::$_0::$_0($_0 const&) src/./src/httprpc.cpp:300:23 (bitcoind+0x576117)
        [#3](/bitcoin-bitcoin/3/) void std::_Function_base::_Base_manager<StartHTTPRPC(std::any const&)::$_0>::_M_create<StartHTTPRPC(std::any const&)::$_0 const&>(std::_Any_data&, StartHTTPRPC(std::any const&)::$_0 const&, std::integral_constant<bool, false>) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:161:14 (bitcoind+0x576117)
        [#4](/bitcoin-bitcoin/4/) void std::_Function_base::_Base_manager<StartHTTPRPC(std::any const&)::$_0>::_M_init_functor<StartHTTPRPC(std::any const&)::$_0 const&>(std::_Any_data&, StartHTTPRPC(std::any const&)::$_0 const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:215:6 (bitcoind+0x576117)
        [#5](/bitcoin-bitcoin/5/) std::_Function_base::_Base_manager<StartHTTPRPC(std::any const&)::$_0>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:198:8 (bitcoind+0x576117)
        [#6](/bitcoin-bitcoin/6/) std::_Function_handler<bool (HTTPRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), StartHTTPRPC(std::any const&)::$_0>::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:282:6 (bitcoind+0x576117)
        [#7](/bitcoin-bitcoin/7/) std::function<bool (HTTPRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function(std::function<bool (HTTPRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:391:6 (bitcoind+0x5853cb) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#8](/bitcoin-bitcoin/8/) HTTPWorkItem::HTTPWorkItem(std::unique_ptr<HTTPRequest, std::default_delete<HTTPRequest> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::function<bool (HTTPRequest*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&) src/./src/httpserver.cpp:51:44 (bitcoind+0x5853cb)
        [#9](/bitcoin-bitcoin/9/) http_request_cb(evhttp_request*, void*) src/./src/httpserver.cpp:262:48 (bitcoind+0x57e79c) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#10](/bitcoin-bitcoin/10/) <null> <null> (libevent-2.1.so.7+0x3be9b) (BuildId: 4c26f7362d55dd3d9504a9fe94805a6235d480c7)
        [#11](/bitcoin-bitcoin/11/) bool std::__invoke_impl<bool, bool (*)(event_base*), event_base*>(std::__invoke_other, bool (*&&)(event_base*), event_base*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14 (bitcoind+0x586f07) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#12](/bitcoin-bitcoin/12/) std::__invoke_result<bool (*)(event_base*), event_base*>::type std::__invoke<bool (*)(event_base*), event_base*>(bool (*&&)(event_base*), event_base*&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14 (bitcoind+0x586f07)
        [#13](/bitcoin-bitcoin/13/) bool std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:253:13 (bitcoind+0x586f07)
        [#14](/bitcoin-bitcoin/14/) std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> >::operator()() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:260:11 (bitcoind+0x586f07)
        [#15](/bitcoin-bitcoin/15/) std::thread::_State_impl<std::thread::_Invoker<std::tuple<bool (*)(event_base*), event_base*> > >::_M_run() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_thread.h:211:13 (bitcoind+0x586f07)
        [#16](/bitcoin-bitcoin/16/) <null> <null> (libstdc++.so.6+0xdc2c2) (BuildId: 725ef5da52ee6d881f9024d8238a989903932637)
    
      Mutex M0 (0x558a6e79ef70) created at:
        [#0](/bitcoin-bitcoin/0/) pthread_mutex_trylock <null> (bitcoind+0x998fa) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) __gthread_mutex_trylock(pthread_mutex_t*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:758:12 (bitcoind+0x11e640) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#2](/bitcoin-bitcoin/2/) std::mutex::try_lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_mutex.h:111:15 (bitcoind+0x11e640)
        [#3](/bitcoin-bitcoin/3/) std::unique_lock<std::mutex>::try_lock() /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_lock.h:153:27 (bitcoind+0x11e640)
        [#4](/bitcoin-bitcoin/4/) UniqueLock<AnnotatedMixin<std::mutex>, std::unique_lock<std::mutex> >::TryEnter(char const*, char const*, int) src/./sync.h:168:15 (bitcoind+0x11e640)
        [#5](/bitcoin-bitcoin/5/) UniqueLock<AnnotatedMixin<std::mutex>, std::unique_lock<std::mutex> >::UniqueLock(AnnotatedMixin<std::mutex>&, char const*, char const*, int, bool) src/./sync.h:179:13 (bitcoind+0x11e640)
        [#6](/bitcoin-bitcoin/6/) Shutdown(node::NodeContext&) src/./src/init.cpp:214:5 (bitcoind+0x11e640)
        [#7](/bitcoin-bitcoin/7/) AppInit(node::NodeContext&, int, char**) src/./src/bitcoind.cpp:254:5 (bitcoind+0x11a8cf) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#8](/bitcoin-bitcoin/8/) main src/./src/bitcoind.cpp:278:13 (bitcoind+0x11a8cf)
    
      Thread T17 'b-http' (tid=56736, running) created by main thread at:
        [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x97e3d) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#1](/bitcoin-bitcoin/1/) std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) <null> (libstdc++.so.6+0xdc398) (BuildId: 725ef5da52ee6d881f9024d8238a989903932637)
        [#2](/bitcoin-bitcoin/2/) AppInitServers(node::NodeContext&) src/./src/init.cpp:650:5 (bitcoind+0x13becf) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#3](/bitcoin-bitcoin/3/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) src/./src/init.cpp:1178:14 (bitcoind+0x133b78) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#4](/bitcoin-bitcoin/4/) AppInit(node::NodeContext&, int, char**) src/./src/bitcoind.cpp:234:43 (bitcoind+0x119ac1) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1)
        [#5](/bitcoin-bitcoin/5/) main src/./src/bitcoind.cpp:278:13 (bitcoind+0x119ac1)
    
    SUMMARY: ThreadSanitizer: data race (/root/bitcoin-core/src/bitcoind+0x11848e) (BuildId: e4357ad76681023995313fed2aa9c2995c9fabb1) in operator delete(void*)
    ==================
    ThreadSanitizer: reported 2 warnings 
    
    

    </details>

  8. MarcoFalke closed this on Sep 7, 2022

  9. sidhujag referenced this in commit d1f05de3c6 on Sep 7, 2022
  10. bitcoin locked this on Sep 7, 2023

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 15:14 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me