qa: Data race detected when running mempool_expiry.py #19448

issue hebasto openend this issue on July 5, 2020
  1. hebasto commented at 2:13 pm on July 5, 2020: member

    https://cirrus-ci.com/task/4919890316361728?command=ci#L3486

    Similar issues:

      0...
      1108/159 - mempool_expiry.py failed, Duration: 4 s
      2stdout:
      32020-07-05T12:07:26.964000Z TestFramework (INFO): Initializing test directory /tmp/cirrus-ci-build/ci/scratch/test_runner/test_runner__🏃_20200705_114826/mempool_expiry_49
      42020-07-05T12:07:29.624000Z TestFramework (INFO): Test default mempool expiry timeout of 336 hours.
      52020-07-05T12:07:30.281000Z TestFramework (INFO): Broadcast child transaction after 7 days, 0:00:00 hours.
      62020-07-05T12:07:30.641000Z TestFramework (INFO): Test parent tx not expired after 13 days, 23:59:55 hours.
      72020-07-05T12:07:30.765000Z TestFramework (ERROR): Unexpected exception caught during testing
      8Traceback (most recent call last):
      9  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/authproxy.py", line 108, in _request
     10    return self._get_response()
     11  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/authproxy.py", line 168, in _get_response
     12    http_response = self.__conn.getresponse()
     13  File "/usr/lib/python3.8/http/client.py", line 1332, in getresponse
     14    response.begin()
     15  File "/usr/lib/python3.8/http/client.py", line 303, in begin
     16    version, status, reason = self._read_status()
     17  File "/usr/lib/python3.8/http/client.py", line 272, in _read_status
     18    raise RemoteDisconnected("Remote end closed connection without"
     19http.client.RemoteDisconnected: Remote end closed connection without response
     20During handling of the above exception, another exception occurred:
     21Traceback (most recent call last):
     22  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 117, in main
     23    self.run_test()
     24  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/mempool_expiry.py", line 91, in run_test
     25    self.test_transaction_expiry(DEFAULT_MEMPOOL_EXPIRY)
     26  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/mempool_expiry.py", line 77, in test_transaction_expiry
     27    node.sendtoaddress(node.getnewaddress(), 1.0)
     28  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/coverage.py", line 47, in __call__
     29    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
     30  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/authproxy.py", line 144, in __call__
     31    response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
     32  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/authproxy.py", line 113, in _request
     33    self.__conn.request(method, path, postdata, headers)
     34  File "/usr/lib/python3.8/http/client.py", line 1240, in request
     35    self._send_request(method, url, body, headers, encode_chunked)
     36  File "/usr/lib/python3.8/http/client.py", line 1286, in _send_request
     37    self.endheaders(body, encode_chunked=encode_chunked)
     38  File "/usr/lib/python3.8/http/client.py", line 1235, in endheaders
     39    self._send_output(message_body, encode_chunked=encode_chunked)
     40  File "/usr/lib/python3.8/http/client.py", line 1006, in _send_output
     41    self.send(msg)
     42  File "/usr/lib/python3.8/http/client.py", line 946, in send
     43    self.connect()
     44  File "/usr/lib/python3.8/http/client.py", line 917, in connect
     45    self.sock = self._create_connection(
     46  File "/usr/lib/python3.8/socket.py", line 808, in create_connection
     47    raise err
     48  File "/usr/lib/python3.8/socket.py", line 796, in create_connection
     49    sock.connect(sa)
     50ConnectionRefusedError: [Errno 111] Connection refused
     512020-07-05T12:07:31.091000Z TestFramework (INFO): Stopping nodes
     522020-07-05T12:07:31.092000Z TestFramework.node0 (ERROR): Unable to stop node.
     53Traceback (most recent call last):
     54  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_node.py", line 319, in stop_node
     55    self.stop(wait=wait)
     56  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/coverage.py", line 47, in __call__
     57    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
     58  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/authproxy.py", line 144, in __call__
     59    response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
     60  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/authproxy.py", line 107, in _request
     61    self.__conn.request(method, path, postdata, headers)
     62  File "/usr/lib/python3.8/http/client.py", line 1240, in request
     63    self._send_request(method, url, body, headers, encode_chunked)
     64  File "/usr/lib/python3.8/http/client.py", line 1251, in _send_request
     65    self.putrequest(method, url, **skips)
     66  File "/usr/lib/python3.8/http/client.py", line 1088, in putrequest
     67    raise CannotSendRequest(self.__state)
     68http.client.CannotSendRequest: Request-sent
     69stderr:
     70Traceback (most recent call last):
     71  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/mempool_expiry.py", line 100, in <module>
     72    MempoolExpiryTest().main()
     73  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 140, in main
     74    exit_code = self.shutdown()
     75  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 264, in shutdown
     76    self.stop_nodes()
     77  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_framework.py", line 525, in stop_nodes
     78    node.wait_until_stopped()
     79  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_node.py", line 362, in wait_until_stopped
     80    wait_until(self.is_node_stopped, timeout=timeout, timeout_factor=self.timeout_factor)
     81  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/util.py", line 241, in wait_until
     82    if predicate():
     83  File "/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/test/functional/test_framework/test_node.py", line 352, in is_node_stopped
     84    assert return_code == 0, self._node_msg(
     85AssertionError: [node 0] Node returned non-zero exit code (66) when stopping
     86...
     87mempool_expiry.py                     |  Failed  | 4 s
     88ALL                                   |  Failed  | 4500 s (accumulated) 
     89Runtime: 1142 s
     90==================
     91WARNING: ThreadSanitizer: data race (pid=37561)
     92  Write of size 1 at 0x7b84000208cc by thread T18 (mutexes: write M132362, write M132877):
     93    [#0](/bitcoin-bitcoin/0/) memmove <null> (bitcoind+0x79de7)
     94    [#1](/bitcoin-bitcoin/1/) __db_pitem <null> (bitcoind+0x880daf)
     95    [#2](/bitcoin-bitcoin/2/) bool BerkeleyBatch::Write<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, CPubKey>, CKeyMetadata>(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, CPubKey> const&, CKeyMetadata const&, bool) <null> (bitcoind+0x592efe)
     96    [#3](/bitcoin-bitcoin/3/) WalletBatch::WriteKeyMetadata(CKeyMetadata const&, CPubKey const&, bool) <null> (bitcoind+0x57e2d1)
     97    [#4](/bitcoin-bitcoin/4/) WalletBatch::WriteKey(CPubKey const&, std::__1::vector<unsigned char, secure_allocator<unsigned char> > const&, CKeyMetadata const&) <null> (bitcoind+0x57e3ca)
     98    [#5](/bitcoin-bitcoin/5/) LegacyScriptPubKeyMan::AddKeyPubKeyWithDB(WalletBatch&, CKey const&, CPubKey const&) <null> (bitcoind+0x5026af)
     99    [#6](/bitcoin-bitcoin/6/) LegacyScriptPubKeyMan::GenerateNewKey(WalletBatch&, CHDChain&, bool) <null> (bitcoind+0x4fd0d8)
    100    [#7](/bitcoin-bitcoin/7/) LegacyScriptPubKeyMan::TopUp(unsigned int) <null> (bitcoind+0x507948)
    101    [#8](/bitcoin-bitcoin/8/) CWallet::GetNewDestination(OutputType, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, boost::variant<CNoDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown>&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) <null> (bitcoind+0x551956)
    102    [#9](/bitcoin-bitcoin/9/) getnewaddress(JSONRPCRequest const&) <null> (bitcoind+0x4a786a)
    103    [#10](/bitcoin-bitcoin/10/) std::__1::__function::__func<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x281bed)
    104    [#11](/bitcoin-bitcoin/11/) std::__1::__function::__func<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x43b86e)
    105    [#12](/bitcoin-bitcoin/12/) std::__1::__function::__func<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x147722)
    106    [#13](/bitcoin-bitcoin/13/) CRPCTable::execute(JSONRPCRequest const&) const <null> (bitcoind+0x32afad)
    107    [#14](/bitcoin-bitcoin/14/) std::__1::__function::__func<StartHTTPRPC(util::Ref const&)::$_0, std::__1::allocator<StartHTTPRPC(util::Ref 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&) <null> (bitcoind+0x400d2a)
    108    [#15](/bitcoin-bitcoin/15/) HTTPWorkItem::operator()() <null> (bitcoind+0x40b072)
    109    [#16](/bitcoin-bitcoin/16/) WorkQueue<HTTPClosure>::Run() <null> (bitcoind+0x40d175)
    110    [#17](/bitcoin-bitcoin/17/) HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) <null> (bitcoind+0x40731c)
    111    [#18](/bitcoin-bitcoin/18/) void* std::__1::__thread_proxy<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*) <null> (bitcoind+0x40dc38)
    112  Previous read of size 8 at 0x7b84000208c8 by thread T16:
    113    [#0](/bitcoin-bitcoin/0/) pwrite <null> (bitcoind+0x7bc72)
    114    [#1](/bitcoin-bitcoin/1/) __os_io <null> (bitcoind+0x806602)
    115    [#2](/bitcoin-bitcoin/2/) BerkeleyBatch::Close() <null> (bitcoind+0x45955d)
    116    [#3](/bitcoin-bitcoin/3/) CWallet::chainStateFlushed(CBlockLocator const&) <null> (bitcoind+0x53183c)
    117    [#4](/bitcoin-bitcoin/4/) non-virtual thunk to CWallet::chainStateFlushed(CBlockLocator const&) <null> (bitcoind+0x5318ef)
    118    [#5](/bitcoin-bitcoin/5/) interfaces::(anonymous namespace)::NotificationsProxy::ChainStateFlushed(CBlockLocator const&) <null> (bitcoind+0x146fb1)
    119    [#6](/bitcoin-bitcoin/6/) std::__1::__function::__func<CMainSignals::ChainStateFlushed(CBlockLocator const&)::$_13, std::__1::allocator<CMainSignals::ChainStateFlushed(CBlockLocator const&)::$_13>, void ()>::operator()() <null> (bitcoind+0x3d1f4e)
    120    [#7](/bitcoin-bitcoin/7/) SingleThreadedSchedulerClient::ProcessQueue() <null> (bitcoind+0x632816)
    121    [#8](/bitcoin-bitcoin/8/) std::__1::__function::__func<std::__1::__bind<void (SingleThreadedSchedulerClient::*)(), SingleThreadedSchedulerClient*>, std::__1::allocator<std::__1::__bind<void (SingleThreadedSchedulerClient::*)(), SingleThreadedSchedulerClient*> >, void ()>::operator()() <null> (bitcoind+0x634736)
    122    [#9](/bitcoin-bitcoin/9/) CScheduler::serviceQueue() <null> (bitcoind+0x6317e5)
    123    [#10](/bitcoin-bitcoin/10/) boost::detail::thread_data<AppInitMain(util::Ref const&, NodeContext&)::$_4>::run() <null> (bitcoind+0x12354d)
    124    [#11](/bitcoin-bitcoin/11/) boost::(anonymous namespace)::thread_proxy(void*) <null> (bitcoind+0x7a289e)
    125  Location is heap block of size 4184 at 0x7b8400020800 allocated by thread T18:
    126    [#0](/bitcoin-bitcoin/0/) malloc <null> (bitcoind+0x6e8e4)
    127    [#1](/bitcoin-bitcoin/1/) __os_malloc <null> (bitcoind+0x804b08)
    128    [#2](/bitcoin-bitcoin/2/) bool BerkeleyBatch::Write<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, uint256>, CWalletTx>(std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, uint256> const&, CWalletTx const&, bool) <null> (bitcoind+0x591e32)
    129    [#3](/bitcoin-bitcoin/3/) WalletBatch::WriteTx(CWalletTx const&) <null> (bitcoind+0x57e0b1)
    130    [#4](/bitcoin-bitcoin/4/) CWallet::AddToWallet(std::__1::shared_ptr<CTransaction const>, CWalletTx::Confirmation const&, std::__1::function<bool (CWalletTx&, bool)> const&, bool) <null> (bitcoind+0x535ec4)
    131    [#5](/bitcoin-bitcoin/5/) CWallet::AddToWalletIfInvolvingMe(std::__1::shared_ptr<CTransaction const> const&, CWalletTx::Confirmation, bool) <null> (bitcoind+0x538114)
    132    [#6](/bitcoin-bitcoin/6/) CWallet::ScanForWalletTransactions(uint256 const&, int, boost::optional<int>, WalletRescanReserver const&, bool) <null> (bitcoind+0x540262)
    133    [#7](/bitcoin-bitcoin/7/) CWallet::RescanFromTime(long, WalletRescanReserver const&, bool) <null> (bitcoind+0x53f236)
    134    [#8](/bitcoin-bitcoin/8/) RescanWallet(CWallet&, WalletRescanReserver const&, long, bool) <null> (bitcoind+0x5aa32e)
    135    [#9](/bitcoin-bitcoin/9/) importprivkey(JSONRPCRequest const&) <null> (bitcoind+0x5a8ec5)
    136    [#10](/bitcoin-bitcoin/10/) std::__1::__function::__func<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x281bed)
    137    [#11](/bitcoin-bitcoin/11/) std::__1::__function::__func<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x43b86e)
    138    [#12](/bitcoin-bitcoin/12/) std::__1::__function::__func<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x147722)
    139    [#13](/bitcoin-bitcoin/13/) CRPCTable::execute(JSONRPCRequest const&) const <null> (bitcoind+0x32aa16)
    140    [#14](/bitcoin-bitcoin/14/) std::__1::__function::__func<StartHTTPRPC(util::Ref const&)::$_0, std::__1::allocator<StartHTTPRPC(util::Ref 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&) <null> (bitcoind+0x400d2a)
    141    [#15](/bitcoin-bitcoin/15/) HTTPWorkItem::operator()() <null> (bitcoind+0x40b072)
    142    [#16](/bitcoin-bitcoin/16/) WorkQueue<HTTPClosure>::Run() <null> (bitcoind+0x40d175)
    143    [#17](/bitcoin-bitcoin/17/) HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) <null> (bitcoind+0x40731c)
    144    [#18](/bitcoin-bitcoin/18/) void* std::__1::__thread_proxy<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*) <null> (bitcoind+0x40dc38)
    145  Mutex M132362 (0x7b5c00020030) created at:
    146    [#0](/bitcoin-bitcoin/0/) pthread_mutex_init <null> (bitcoind+0x7172d)
    147    [#1](/bitcoin-bitcoin/1/) std::__1::recursive_mutex::recursive_mutex() <null> (libc++.so.1+0x83583)
    148    [#2](/bitcoin-bitcoin/2/) CWallet::CreateWalletFromFile(interfaces::Chain&, WalletLocation const&, bilingual_str&, std::__1::vector<bilingual_str, std::__1::allocator<bilingual_str> >&, unsigned long) <null> (bitcoind+0x527e5b)
    149    [#3](/bitcoin-bitcoin/3/) CreateWallet(interfaces::Chain&, std::__1::basic_string<char, std::__1::char_traits<char>, secure_allocator<char> > const&, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bilingual_str&, std::__1::vector<bilingual_str, std::__1::allocator<bilingual_str> >&, std::__1::shared_ptr<CWallet>&) <null> (bitcoind+0x525d41)
    150    [#4](/bitcoin-bitcoin/4/) createwallet(JSONRPCRequest const&) <null> (bitcoind+0x4a0267)
    151    [#5](/bitcoin-bitcoin/5/) std::__1::__function::__func<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x281bed)
    152    [#6](/bitcoin-bitcoin/6/) std::__1::__function::__func<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x43b86e)
    153    [#7](/bitcoin-bitcoin/7/) std::__1::__function::__func<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x147722)
    154    [#8](/bitcoin-bitcoin/8/) CRPCTable::execute(JSONRPCRequest const&) const <null> (bitcoind+0x32aa16)
    155    [#9](/bitcoin-bitcoin/9/) std::__1::__function::__func<StartHTTPRPC(util::Ref const&)::$_0, std::__1::allocator<StartHTTPRPC(util::Ref 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&) <null> (bitcoind+0x400d2a)
    156    [#10](/bitcoin-bitcoin/10/) HTTPWorkItem::operator()() <null> (bitcoind+0x40b072)
    157    [#11](/bitcoin-bitcoin/11/) WorkQueue<HTTPClosure>::Run() <null> (bitcoind+0x40d175)
    158    [#12](/bitcoin-bitcoin/12/) HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) <null> (bitcoind+0x40731c)
    159    [#13](/bitcoin-bitcoin/13/) void* std::__1::__thread_proxy<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*) <null> (bitcoind+0x40dc38)
    160  Mutex M132877 (0x7b5000010878) created at:
    161    [#0](/bitcoin-bitcoin/0/) pthread_mutex_init <null> (bitcoind+0x7172d)
    162    [#1](/bitcoin-bitcoin/1/) std::__1::recursive_mutex::recursive_mutex() <null> (libc++.so.1+0x83583)
    163    [#2](/bitcoin-bitcoin/2/) CWallet::SetupLegacyScriptPubKeyMan() <null> (bitcoind+0x5556ae)
    164    [#3](/bitcoin-bitcoin/3/) CWallet::CreateWalletFromFile(interfaces::Chain&, WalletLocation const&, bilingual_str&, std::__1::vector<bilingual_str, std::__1::allocator<bilingual_str> >&, unsigned long) <null> (bitcoind+0x528359)
    165    [#4](/bitcoin-bitcoin/4/) CreateWallet(interfaces::Chain&, std::__1::basic_string<char, std::__1::char_traits<char>, secure_allocator<char> > const&, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bilingual_str&, std::__1::vector<bilingual_str, std::__1::allocator<bilingual_str> >&, std::__1::shared_ptr<CWallet>&) <null> (bitcoind+0x525d41)
    166    [#5](/bitcoin-bitcoin/5/) createwallet(JSONRPCRequest const&) <null> (bitcoind+0x4a0267)
    167    [#6](/bitcoin-bitcoin/6/) std::__1::__function::__func<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<CRPCCommand::CRPCCommand(char const*, char const*, UniValue (*)(JSONRPCRequest const&), std::initializer_list<char const*>)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x281bed)
    168    [#7](/bitcoin-bitcoin/7/) std::__1::__function::__func<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::WalletClientImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x43b86e)
    169    [#8](/bitcoin-bitcoin/8/) std::__1::__function::__func<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<interfaces::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) <null> (bitcoind+0x147722)
    170    [#9](/bitcoin-bitcoin/9/) CRPCTable::execute(JSONRPCRequest const&) const <null> (bitcoind+0x32aa16)
    171    [#10](/bitcoin-bitcoin/10/) std::__1::__function::__func<StartHTTPRPC(util::Ref const&)::$_0, std::__1::allocator<StartHTTPRPC(util::Ref 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&) <null> (bitcoind+0x400d2a)
    172    [#11](/bitcoin-bitcoin/11/) HTTPWorkItem::operator()() <null> (bitcoind+0x40b072)
    173    [#12](/bitcoin-bitcoin/12/) WorkQueue<HTTPClosure>::Run() <null> (bitcoind+0x40d175)
    174    [#13](/bitcoin-bitcoin/13/) HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) <null> (bitcoind+0x40731c)
    175    [#14](/bitcoin-bitcoin/14/) void* std::__1::__thread_proxy<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*) <null> (bitcoind+0x40dc38)
    176  Thread T18 'b-httpworker.0' (tid=37580, running) created by main thread at:
    177    [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x701ab)
    178    [#1](/bitcoin-bitcoin/1/) std::__1::thread::thread<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&, int&, void>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&, int&) <null> (bitcoind+0x40db10)
    179    [#2](/bitcoin-bitcoin/2/) void 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&) <null> (bitcoind+0x40d472)
    180    [#3](/bitcoin-bitcoin/3/) StartHTTPServer() <null> (bitcoind+0x4070d8)
    181    [#4](/bitcoin-bitcoin/4/) AppInitMain(util::Ref const&, NodeContext&) <null> (bitcoind+0x117751)
    182    [#5](/bitcoin-bitcoin/5/) main <null> (bitcoind+0x10000c)
    183  Thread T16 'b-scheduler' (tid=37578, running) created by main thread at:
    184    [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x701ab)
    185    [#1](/bitcoin-bitcoin/1/) boost::thread::start_thread_noexcept() <null> (bitcoind+0x7a279d)
    186    [#2](/bitcoin-bitcoin/2/) AppInitMain(util::Ref const&, NodeContext&) <null> (bitcoind+0x1171ee)
    187    [#3](/bitcoin-bitcoin/3/) main <null> (bitcoind+0x10000c)
    188SUMMARY: ThreadSanitizer: data race (/tmp/cirrus-ci-build/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/bitcoind+0x79de7) in memmove
    189==================
    
  2. hebasto added the label Bug on Jul 5, 2020
  3. hebasto commented at 3:15 pm on July 5, 2020: member
    The issue is reproducible locally on Linux Mint 20 (x86_64).
  4. maflcko commented at 3:20 pm on July 5, 2020: member
    In the meantime (before fixing the bug) a suppression can be added
  5. hebasto commented at 3:26 pm on July 5, 2020: member

    @MarcoFalke

    In the meantime (before fixing the bug) a suppression can be added

    Done in #19450.

  6. maflcko referenced this in commit f4301e9107 on Jul 5, 2020
  7. hebasto renamed this:
    test: Data race detected when running mempool_expiry.py
    qa: Data race detected when running mempool_expiry.py
    on Nov 6, 2020
  8. hebasto renamed this:
    qa: Data race detected when running mempool_expiry.py
    qa: Data race detected when running `mempool_expiry.py`
    on Jun 27, 2022
  9. fanquake commented at 3:34 pm on February 7, 2023: member
    Does it makes sense to keep this open any longer given #20276? Otherwise, what is there actual actionable todo here? Does the original problem still occur with master?
  10. maflcko closed this on Feb 7, 2023

  11. knst referenced this in commit 6b505d9a9e on Jan 13, 2024
  12. knst referenced this in commit 12663bc61a on Jan 15, 2024
  13. knst referenced this in commit 4d084cb0cb on Jan 17, 2024
  14. knst referenced this in commit d1e28e6a41 on Jan 19, 2024
  15. knst referenced this in commit ee9277f667 on Jan 20, 2024
  16. knst referenced this in commit fb92dbaa8b on Jan 24, 2024
  17. knst referenced this in commit 3bb55b368d on Jan 29, 2024
  18. PastaPastaPasta referenced this in commit 62fb07deb6 on Feb 1, 2024
  19. bitcoin locked this on Feb 7, 2024

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: 2024-10-04 22:12 UTC

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