rpc: use CScheduler for relocking wallet and remove RPCTimer #32862

pull pinheadmz wants to merge 2 commits into bitcoin:master from pinheadmz:http-scheduler-notimer changing 10 files +14 −187
  1. pinheadmz commented at 11:06 am on July 3, 2025: member

    This removes the dependency on libevent for events scheduled by RPC commands, like re-locking a wallet some time after decryption with walletpassphrase. Since walletpassphrase is currently the only RPC that does this, RPCRunLater, RPCTimerInterface and all related methods are left unused, and deleted in the second commit. Any future RPC that needs to execute a callback in the future can follow the pattern in this PR and just use a scheduler from node or wallet context.

    This is an alternative approach to #32796, described in #32796 (comment)

  2. use WalletContext scheduler for walletpassphrase callback 8a1765795f
  3. remove RPCTimerInterface and RPCRunLater fcfd3db563
  4. DrahtBot added the label RPC/REST/ZMQ on Jul 3, 2025
  5. DrahtBot commented at 11:06 am on July 3, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32862.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK furszy, fjahr, achow101

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #bitcoin-core/gui/866 (Enhanced Traffic Graph Widget with Multi-timeframe Support and Data Persistence by rebroad)
    • #32061 (Replace libevent with our own HTTP and socket-handling implementation by pinheadmz)

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  6. pinheadmz renamed this:
    rpc: use CScheduler for HTTPRPCTimer and remove RPCTimer
    rpc: use CScheduler for relocking wallwt and remove RPCTimer
    on Jul 3, 2025
  7. pinheadmz renamed this:
    rpc: use CScheduler for relocking wallwt and remove RPCTimer
    rpc: use CScheduler for relocking wallet and remove RPCTimer
    on Jul 3, 2025
  8. furszy commented at 2:22 pm on July 3, 2025: member
    ACK fcfd3db563e89fd79820a4cdfa102d624d801de1
  9. fjahr commented at 9:51 pm on July 5, 2025: contributor

    Code Review ACK fcfd3db563e89fd79820a4cdfa102d624d801de1

    Nice code removal, I did some additional grepping to make sure nothing was missed and didn’t see anything.

  10. fanquake requested review from achow101 on Jul 7, 2025
  11. achow101 commented at 0:32 am on July 8, 2025: member
    ACK fcfd3db563e89fd79820a4cdfa102d624d801de1
  12. achow101 merged this on Jul 8, 2025
  13. achow101 closed this on Jul 8, 2025

  14. stringintech referenced this in commit f19e7819e9 on Jul 19, 2025
  15. maflcko commented at 7:41 pm on July 24, 2025: member

    Just wanted to leave a note that this uncovers a false positive libc++ tsan warning, if anyone runs into this.

    https://cirrus-ci.com/task/5230471308640256?logs=check#L1679:

      0WARNING: ThreadSanitizer: data race (pid=22900)
      1  Write of size 8 at 0x720c00021ab0 by thread T1 (mutexes: write M0):
      2    [#0](/bitcoin-bitcoin/0/) operator delete(void*, unsigned long) <null> (bitcoind+0x17e6cc) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
      3    [#1](/bitcoin-bitcoin/1/) void std::__1::__libcpp_operator_delete[abi:ne200100]<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>*, unsigned long>(std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>*, unsigned long) /usr/lib/llvm-20/bin/../include/c++/v1/__new/allocate.h:46:3 (bitcoind+0x828ae0) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
      4    [#2](/bitcoin-bitcoin/2/) void std::__1::__libcpp_deallocate[abi:ne200100]<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>>(std::__1::__type_identity<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>>::type*, std::__1::__element_count, unsigned long) /usr/lib/llvm-20/bin/../include/c++/v1/__new/allocate.h:86:12 (bitcoind+0x828ae0)
      5    [#3](/bitcoin-bitcoin/3/) std::__1::allocator<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>>::deallocate[abi:ne200100](std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>*, unsigned long) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/allocator.h:120:7 (bitcoind+0x828ae0)
      6    [#4](/bitcoin-bitcoin/4/) std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>::__on_zero_shared_weak() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:134:7 (bitcoind+0x828ae0)
      7    [#5](/bitcoin-bitcoin/5/) std::__1::weak_ptr<wallet::CWallet>::~weak_ptr() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:1315:15 (bitcoind+0x8ec01a) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
      8    [#6](/bitcoin-bitcoin/6/) wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'()::~() /tmp/cirrus-ci-build/bitcoin-core/bld/src/wallet/./wallet/rpc/encrypt.cpp:102:40 (bitcoind+0x8ec01a)
      9    [#7](/bitcoin-bitcoin/7/) std::__1::__function::__alloc_func<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'(), std::__1::allocator<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'()>, void ()>::destroy[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:181:14 (bitcoind+0x8ec01a)
     10    [#8](/bitcoin-bitcoin/8/) std::__1::__function::__func<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'(), std::__1::allocator<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'()>, void ()>::destroy() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:305:8 (bitcoind+0x8ec01a)
     11    [#9](/bitcoin-bitcoin/9/) std::__1::__function::__value_func<void ()>::~__value_func[abi:ne200100]() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./scheduler.h (bitcoind+0xadd907) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     12    [#10](/bitcoin-bitcoin/10/) std::__1::function<void ()>::~function() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:986:43 (bitcoind+0xadd907)
     13    [#11](/bitcoin-bitcoin/11/) CScheduler::serviceQueue() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./scheduler.cpp:62:9 (bitcoind+0xadd907)
     14    [#12](/bitcoin-bitcoin/12/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6::operator()() const /tmp/cirrus-ci-build/bitcoin-core/bld/src/./init.cpp:1365:94 (bitcoind+0x1abe95) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     15    [#13](/bitcoin-bitcoin/13/) decltype(std::declval<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&>()()) std::__1::__invoke[abi:ne200100]<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&>(AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x1abe95)
     16    [#14](/bitcoin-bitcoin/14/) void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne200100]<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&>(AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:251:5 (bitcoind+0x1abe95)
     17    [#15](/bitcoin-bitcoin/15/) void std::__1::__invoke_r[abi:ne200100]<void, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&>(AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x1abe95)
     18    [#16](/bitcoin-bitcoin/16/) std::__1::__function::__alloc_func<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6, std::__1::allocator<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>, void ()>::operator()[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x1abe95)
     19    [#17](/bitcoin-bitcoin/17/) std::__1::__function::__func<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6, std::__1::allocator<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>, void ()>::operator()() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x1abe95)
     20    [#18](/bitcoin-bitcoin/18/) std::__1::__function::__value_func<void ()>::operator()[abi:ne200100]() const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0xbd0222) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     21    [#19](/bitcoin-bitcoin/19/) std::__1::function<void ()>::operator()() const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0xbd0222)
     22    [#20](/bitcoin-bitcoin/20/) util::TraceThread(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>) /tmp/cirrus-ci-build/bitcoin-core/bld/src/util/./util/thread.cpp:21:9 (bitcoind+0xbd0222)
     23    [#21](/bitcoin-bitcoin/21/) decltype(std::declval<void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>)>()(std::declval<char const*>(), std::declval<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>())) std::__1::__invoke[abi:ne200100]<void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>(void (*&&)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*&&, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x1aba8c) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     24    [#22](/bitcoin-bitcoin/22/) void std::__1::__thread_execute[abi:ne200100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6, 2ul, 3ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>&, std::__1::__tuple_indices<2ul, 3ul>) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:199:3 (bitcoind+0x1aba8c)
     25    [#23](/bitcoin-bitcoin/23/) void* std::__1::__thread_proxy[abi:ne200100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6>>(void*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:208:3 (bitcoind+0x1aba8c)
     26  Previous read of size 8 at 0x720c00021ab0 by thread T16:
     27    [#0](/bitcoin-bitcoin/0/) std::__1::__shared_count::__release_shared[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_count.h:91:7 (bitcoind+0x7d466e) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     28    [#1](/bitcoin-bitcoin/1/) std::__1::__shared_weak_count::__release_shared[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_count.h:120:25 (bitcoind+0x7d466e)
     29    [#2](/bitcoin-bitcoin/2/) std::__1::shared_ptr<wallet::CWallet>::~shared_ptr[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:558:17 (bitcoind+0x7d466e)
     30    [#3](/bitcoin-bitcoin/3/) std::__1::shared_ptr<wallet::CWallet>::reset[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:608:50 (bitcoind+0x7d466e)
     31    [#4](/bitcoin-bitcoin/4/) wallet::WaitForDeleteWallet(std::__1::shared_ptr<wallet::CWallet>&&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/wallet/./wallet/wallet.cpp:264:12 (bitcoind+0x7d466e)
     32    [#5](/bitcoin-bitcoin/5/) wallet::unloadwallet()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const /tmp/cirrus-ci-build/bitcoin-core/bld/src/wallet/./wallet/rpc/wallet.cpp:490:5 (bitcoind+0x772633) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     33    [#6](/bitcoin-bitcoin/6/) decltype(std::declval<wallet::unloadwallet()::$_0&>()(std::declval<RPCHelpMan const&>(), std::declval<JSONRPCRequest const&>())) std::__1::__invoke[abi:ne200100]<wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&>(wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x772633)
     34    [#7](/bitcoin-bitcoin/7/) UniValue std::__1::__invoke_void_return_wrapper<UniValue, false>::__call[abi:ne200100]<wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&>(wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x772633)
     35    [#8](/bitcoin-bitcoin/8/) UniValue std::__1::__invoke_r[abi:ne200100]<UniValue, wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&>(wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x772633)
     36    [#9](/bitcoin-bitcoin/9/) std::__1::__function::__alloc_func<wallet::unloadwallet()::$_0, std::__1::allocator<wallet::unloadwallet()::$_0>, UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()[abi:ne200100](RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x772633)
     37    [#10](/bitcoin-bitcoin/10/) std::__1::__function::__func<wallet::unloadwallet()::$_0, std::__1::allocator<wallet::unloadwallet()::$_0>, UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x772633)
     38    [#11](/bitcoin-bitcoin/11/) std::__1::__function::__value_func<UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()[abi:ne200100](RPCHelpMan const&, JSONRPCRequest const&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0xac26da) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     39    [#12](/bitcoin-bitcoin/12/) std::__1::function<UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0xac26da)
     40    [#13](/bitcoin-bitcoin/13/) RPCHelpMan::HandleRequest(JSONRPCRequest const&) const /tmp/cirrus-ci-build/bitcoin-core/bld/src/./rpc/util.cpp:663:20 (bitcoind+0xac26da)
     41    [#14](/bitcoin-bitcoin/14/) 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 /tmp/cirrus-ci-build/bitcoin-core/bld/src/./rpc/server.h:60:91 (bitcoind+0x41df78) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     42    [#15](/bitcoin-bitcoin/15/) decltype(std::declval<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&>()(std::declval<JSONRPCRequest const&>(), std::declval<UniValue&>(), std::declval<bool>())) std::__1::__invoke[abi:ne200100]<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x41df78)
     43    [#16](/bitcoin-bitcoin/16/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x41df78)
     44    [#17](/bitcoin-bitcoin/17/) bool std::__1::__invoke_r[abi:ne200100]<bool, CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x41df78)
     45    [#18](/bitcoin-bitcoin/18/) std::__1::__function::__alloc_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()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x41df78)
     46    [#19](/bitcoin-bitcoin/19/) 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&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x41df78)
     47    [#20](/bitcoin-bitcoin/20/) std::__1::__function::__value_func<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x71db01) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     48    [#21](/bitcoin-bitcoin/21/) std::__1::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x71db01)
     49    [#22](/bitcoin-bitcoin/22/) wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const /tmp/cirrus-ci-build/bitcoin-core/bld/src/wallet/./wallet/interfaces.cpp:564:24 (bitcoind+0x71db01)
     50    [#23](/bitcoin-bitcoin/23/) decltype(std::declval<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&>()(std::declval<JSONRPCRequest const&>(), std::declval<UniValue&>(), std::declval<bool>())) std::__1::__invoke[abi:ne200100]<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x71db01)
     51    [#24](/bitcoin-bitcoin/24/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x71db01)
     52    [#25](/bitcoin-bitcoin/25/) bool std::__1::__invoke_r[abi:ne200100]<bool, wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x71db01)
     53    [#26](/bitcoin-bitcoin/26/) std::__1::__function::__alloc_func<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x71db01)
     54    [#27](/bitcoin-bitcoin/27/) std::__1::__function::__func<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x71db01)
     55    [#28](/bitcoin-bitcoin/28/) std::__1::__function::__value_func<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x31c3cc) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     56    [#29](/bitcoin-bitcoin/29/) std::__1::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x31c3cc)
     57    [#30](/bitcoin-bitcoin/30/) node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const /tmp/cirrus-ci-build/bitcoin-core/bld/src/./node/interfaces.cpp:511:24 (bitcoind+0x31c3cc)
     58    [#31](/bitcoin-bitcoin/31/) decltype(std::declval<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&>()(std::declval<JSONRPCRequest const&>(), std::declval<UniValue&>(), std::declval<bool>())) std::__1::__invoke[abi:ne200100]<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x31c3cc)
     59    [#32](/bitcoin-bitcoin/32/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x31c3cc)
     60    [#33](/bitcoin-bitcoin/33/) bool std::__1::__invoke_r[abi:ne200100]<bool, node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x31c3cc)
     61    [#34](/bitcoin-bitcoin/34/) std::__1::__function::__alloc_func<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x31c3cc)
     62    [#35](/bitcoin-bitcoin/35/) std::__1::__function::__func<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x31c3cc)
     63    [#36](/bitcoin-bitcoin/36/) std::__1::__function::__value_func<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x58ac56) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     64    [#37](/bitcoin-bitcoin/37/) std::__1::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x58ac56)
     65    [#38](/bitcoin-bitcoin/38/) ExecuteCommand(CRPCCommand const&, JSONRPCRequest const&, UniValue&, bool) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./rpc/server.cpp:504:20 (bitcoind+0x58ac56)
     66    [#39](/bitcoin-bitcoin/39/) ExecuteCommands(std::__1::vector<CRPCCommand const*, std::__1::allocator<CRPCCommand const*>> const&, JSONRPCRequest const&, UniValue&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./rpc/server.cpp:471:13 (bitcoind+0x58ac56)
     67    [#40](/bitcoin-bitcoin/40/) CRPCTable::execute(JSONRPCRequest const&) const /tmp/cirrus-ci-build/bitcoin-core/bld/src/./rpc/server.cpp:491:13 (bitcoind+0x589831) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     68    [#41](/bitcoin-bitcoin/41/) JSONRPCExec(JSONRPCRequest const&, bool) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./rpc/server.cpp:347:31 (bitcoind+0x588e38) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     69    [#42](/bitcoin-bitcoin/42/) HTTPReq_JSONRPC(std::__1::any const&, HTTPRequest*) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httprpc.cpp:165:21 (bitcoind+0x6cf06d) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     70    [#43](/bitcoin-bitcoin/43/) StartHTTPRPC(std::__1::any const&)::$_0::operator()(HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httprpc.cpp:337:80 (bitcoind+0x6cf06d)
     71    [#44](/bitcoin-bitcoin/44/) decltype(std::declval<StartHTTPRPC(std::__1::any const&)::$_0&>()(std::declval<HTTPRequest*>(), std::declval<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>())) std::__1::__invoke[abi:ne200100]<StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x6cf06d)
     72    [#45](/bitcoin-bitcoin/45/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x6cf06d)
     73    [#46](/bitcoin-bitcoin/46/) bool std::__1::__invoke_r[abi:ne200100]<bool, StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x6cf06d)
     74    [#47](/bitcoin-bitcoin/47/) std::__1::__function::__alloc_func<StartHTTPRPC(std::__1::any const&)::$_0, std::__1::allocator<StartHTTPRPC(std::__1::any const&)::$_0>, bool (HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()[abi:ne200100](HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x6cf06d)
     75    [#48](/bitcoin-bitcoin/48/) std::__1::__function::__func<StartHTTPRPC(std::__1::any const&)::$_0, std::__1::allocator<StartHTTPRPC(std::__1::any 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&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x6cf06d)
     76    [#49](/bitcoin-bitcoin/49/) std::__1::__function::__value_func<bool (HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()[abi:ne200100](HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x6ddf10) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     77    [#50](/bitcoin-bitcoin/50/) std::__1::function<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&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x6ddf10)
     78    [#51](/bitcoin-bitcoin/51/) HTTPWorkItem::operator()() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:62:9 (bitcoind+0x6ddf10)
     79    [#52](/bitcoin-bitcoin/52/) WorkQueue<HTTPClosure>::Run() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:117:13 (bitcoind+0x6e0f92) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     80    [#53](/bitcoin-bitcoin/53/) HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:419:12 (bitcoind+0x6d8090) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     81    [#54](/bitcoin-bitcoin/54/) decltype(std::declval<void (*)(WorkQueue<HTTPClosure>*, int)>()(std::declval<WorkQueue<HTTPClosure>*>(), std::declval<int>())) std::__1::__invoke[abi:ne200100]<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x6e0de7) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     82    [#55](/bitcoin-bitcoin/55/) void std::__1::__thread_execute[abi:ne200100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int, 2ul, 3ul>(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>&, std::__1::__tuple_indices<2ul, 3ul>) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:199:3 (bitcoind+0x6e0de7)
     83    [#56](/bitcoin-bitcoin/56/) void* std::__1::__thread_proxy[abi:ne200100]<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*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:208:3 (bitcoind+0x6e0de7)
     84  Mutex M0 (0x722000000588) created at:
     85    [#0](/bitcoin-bitcoin/0/) pthread_mutex_lock <null> (bitcoind+0xfb93b) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     86    [#1](/bitcoin-bitcoin/1/) std::__1::mutex::lock() <null> (libc++.so.1.0.20+0x7160c) (BuildId: f9f8eb7e398c095067b1e1cffb9b2252bf006a38)
     87    [#2](/bitcoin-bitcoin/2/) CScheduler::scheduleFromNow(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./scheduler.h:55:9 (bitcoind+0x257246) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     88    [#3](/bitcoin-bitcoin/3/) CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./scheduler.cpp:110:5 (bitcoind+0xade477) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     89    [#4](/bitcoin-bitcoin/4/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./init.cpp:1368:15 (bitcoind+0x19c865) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     90    [#5](/bitcoin-bitcoin/5/) AppInit(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:237:43 (bitcoind+0x17fc2a) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     91    [#6](/bitcoin-bitcoin/6/) main /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:283:10 (bitcoind+0x17fc2a)
     92  Thread T1 'b-scheduler' (tid=22912, running) created by main thread at:
     93    [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0xf9c2e) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     94    [#1](/bitcoin-bitcoin/1/) std::__1::__libcpp_thread_create[abi:ne200100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/support/pthread.h:182:10 (bitcoind+0x19c7d8) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     95    [#2](/bitcoin-bitcoin/2/) std::__1::thread::thread<void (&)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const (&) [10], AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6, 0>(void (&)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const (&) [10], AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_6&&) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:218:14 (bitcoind+0x19c7d8)
     96    [#3](/bitcoin-bitcoin/3/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./init.cpp:1365:34 (bitcoind+0x19c7d8)
     97    [#4](/bitcoin-bitcoin/4/) AppInit(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:237:43 (bitcoind+0x17fc2a) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
     98    [#5](/bitcoin-bitcoin/5/) main /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:283:10 (bitcoind+0x17fc2a)
     99  Thread T16 'b-httpworker.13' (tid=22927, running) created by main thread at:
    100    [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0xf9c2e) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
    101    [#1](/bitcoin-bitcoin/1/) std::__1::__libcpp_thread_create[abi:ne200100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/support/pthread.h:182:10 (bitcoind+0x6e0c9b) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
    102    [#2](/bitcoin-bitcoin/2/) std::__1::thread::thread<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, 0>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:218:14 (bitcoind+0x6e0c9b)
    103    [#3](/bitcoin-bitcoin/3/) std::__1::thread* std::__1::construct_at[abi:ne200100]<std::__1::thread, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, std::__1::thread*>(std::__1::thread*, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/construct_at.h:40:49 (bitcoind+0x6d7d4c) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
    104    [#4](/bitcoin-bitcoin/4/) std::__1::thread* std::__1::__construct_at[abi:ne200100]<std::__1::thread, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, std::__1::thread*>(std::__1::thread*, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/construct_at.h:48:10 (bitcoind+0x6d7d4c)
    105    [#5](/bitcoin-bitcoin/5/) void std::__1::allocator_traits<std::__1::allocator<std::__1::thread>>::construct[abi:ne200100]<std::__1::thread, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, void, 0>(std::__1::allocator<std::__1::thread>&, std::__1::thread*, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/allocator_traits.h:318:5 (bitcoind+0x6d7d4c)
    106    [#6](/bitcoin-bitcoin/6/) void std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::__construct_one_at_end[abi:ne200100]<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__vector/vector.h:742:5 (bitcoind+0x6d7d4c)
    107    [#7](/bitcoin-bitcoin/7/) std::__1::thread& std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::emplace_back<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__vector/vector.h:1133:5 (bitcoind+0x6d7d4c)
    108    [#8](/bitcoin-bitcoin/8/) StartHTTPServer() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:508:31 (bitcoind+0x6d7d4c)
    109    [#9](/bitcoin-bitcoin/9/) AppInitServers(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./init.cpp:721:5 (bitcoind+0x1a72d5) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
    110    [#10](/bitcoin-bitcoin/10/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./init.cpp:1457:14 (bitcoind+0x19d537) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
    111    [#11](/bitcoin-bitcoin/11/) AppInit(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:237:43 (bitcoind+0x17fc2a) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
    112    [#12](/bitcoin-bitcoin/12/) main /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:283:10 (bitcoind+0x17fc2a)
    113SUMMARY: ThreadSanitizer: data race (/tmp/cirrus-ci-build/bitcoin-core/bld/bin/bitcoind+0x17e6cc) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd) in operator delete(void*, unsigned long)
    

    This can be reproduced locally via:

    rm -rf ./bld-cmake && cmake -B ./bld-cmake -DCMAKE_C_COMPILER='clang' -DCMAKE_CXX_COMPILER='clang++;-stdlib=libc++' -DBUILD_GUI=OFF -DBUILD_TESTS=OFF -DSANITIZERS=thread && cmake --build ./bld-cmake --parallel $( nproc ) && TSAN_OPTIONS="suppressions=$(pwd)/test/sanitizer_suppressions/tsan:halt_on_error=1:second_deadlock_stack=1" ./bld-cmake/test/functional/wallet_multiwallet.py

    A minimal libc++ reproducer may look like: https://godbolt.org/z/TMEWcYTEK

  16. fanquake commented at 10:57 am on July 25, 2025: member

    Reproduced locally (and consistently) on aarch64 and x86_64. Wondered why this isn’t happening in the TSAN CI, it’s because of DEBUG_LOCKORDER. If you drop that, then the CI will reproduce:

      0134/143 Test [#107](/bitcoin-bitcoin/107/): transaction_tests ....................   Passed   19.46 sec
      1135/143 Test [#116](/bitcoin-bitcoin/116/): txvalidationcache_tests ..............   Passed   21.00 sec
      2136/143 Test [#140](/bitcoin-bitcoin/140/): wallet_tests .........................   Passed   18.79 sec
      3137/143 Test   [#5](/bitcoin-bitcoin/5/): secp256k1_exhaustive_tests ...........   Passed   67.90 sec
      4138/143 Test  [#79](/bitcoin-bitcoin/79/): random_tests .........................   Passed   63.75 sec
      5139/143 Test  [#31](/bitcoin-bitcoin/31/): coins_tests_dbbase ...................   Passed   93.41 sec
      6140/143 Test [#130](/bitcoin-bitcoin/130/): coinselector_tests ...................   Passed  100.65 sec
      7141/143 Test   [#7](/bitcoin-bitcoin/7/): bench_sanity_check ...................   Passed  173.72 sec
      8142/143 Test   [#3](/bitcoin-bitcoin/3/): secp256k1_noverify_tests .............   Passed  258.21 sec
      9143/143 Test   [#4](/bitcoin-bitcoin/4/): secp256k1_tests ......................   Passed  541.78 sec
     10
     11100% tests passed, 0 tests failed out of 143
     12
     13Total Test time (real) = 541.79 sec
     14+ '[' '' = true ']'
     15+ '[' true = true ']'
     16+ eval 'TEST_RUNNER_EXTRA=()'
     17++ TEST_RUNNER_EXTRA=()
     18+ LD_LIBRARY_PATH=/ci_container_base/depends/aarch64-unknown-linux-gnu/lib
     19+ /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/test_runner.py --ci -j17 --tmpdirprefix /ci_container_base/ci/scratch/test_runner/ --ansi --combinedlogslen=99999999 --timeout-factor=40 --quiet --failfast
     2016/270 - wallet_multiwallet.py failed, Duration: 15 s
     21
     22stdout:
     232025-07-25T10:37:15.282773Z TestFramework (INFO): PRNG seed is: 9066748361541480888
     242025-07-25T10:37:15.283864Z TestFramework (INFO): Initializing test directory /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242
     252025-07-25T10:37:16.186982Z TestFramework (INFO): Verify warning is emitted when failing to scan the wallets directory
     262025-07-25T10:37:16.187188Z TestFramework (WARNING): Skipping test involving chmod as it requires a non-root user.
     272025-07-25T10:37:20.220825Z TestFramework (INFO): Do not allow -upgradewallet with multiwallet
     282025-07-25T10:37:25.749244Z TestFramework (INFO): Check for per-wallet settxfee call
     292025-07-25T10:37:25.760051Z TestFramework (INFO): Test dynamic wallet loading
     302025-07-25T10:37:27.498254Z TestFramework (INFO): Load first wallet
     312025-07-25T10:37:27.543494Z TestFramework (INFO): Load second wallet
     322025-07-25T10:37:27.585449Z TestFramework (INFO): Concurrent wallet loading
     332025-07-25T10:37:27.627434Z TestFramework (INFO): Load remaining wallets
     342025-07-25T10:37:27.800707Z TestFramework (INFO): Test dynamic wallet creation.
     352025-07-25T10:37:27.918250Z TestFramework (INFO): Test dynamic wallet unloading
     362025-07-25T10:37:30.117073Z TestFramework (ERROR): Unexpected exception
     37Traceback (most recent call last):
     38  File "/ci_container_base/test/functional/test_framework/test_framework.py", line 195, in main
     39    self.run_test()
     40  File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in run_test
     41    ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
     42  File "/ci_container_base/test/functional/test_framework/util.py", line 289, in ensure_for
     43    if not f():
     44           ^^^
     45  File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in <lambda>
     46    ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
     47                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
     48  File "/ci_container_base/test/functional/test_framework/coverage.py", line 50, in __call__
     49    return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
     50                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     51  File "/ci_container_base/test/functional/test_framework/authproxy.py", line 137, in __call__
     52    response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
     53                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     54  File "/ci_container_base/test/functional/test_framework/authproxy.py", line 111, in _request
     55    return self._get_response()
     56           ^^^^^^^^^^^^^^^^^^^^
     57  File "/ci_container_base/test/functional/test_framework/authproxy.py", line 174, in _get_response
     58    http_response = self.__conn.getresponse()
     59                    ^^^^^^^^^^^^^^^^^^^^^^^^^
     60  File "/usr/lib/python3.12/http/client.py", line 1428, in getresponse
     61    response.begin()
     62  File "/usr/lib/python3.12/http/client.py", line 331, in begin
     63    version, status, reason = self._read_status()
     64                              ^^^^^^^^^^^^^^^^^^^
     65  File "/usr/lib/python3.12/http/client.py", line 300, in _read_status
     66    raise RemoteDisconnected("Remote end closed connection without"
     67http.client.RemoteDisconnected: Remote end closed connection without response
     682025-07-25T10:37:30.170430Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
     692025-07-25T10:37:30.170649Z TestFramework (WARNING): Not cleaning up dir /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242
     702025-07-25T10:37:30.170732Z TestFramework (ERROR): Test failed. Test logging available at /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242/test_framework.log
     712025-07-25T10:37:30.171130Z TestFramework (ERROR): 
     722025-07-25T10:37:30.171630Z TestFramework (ERROR): Hint: Call /ci_container_base/test/functional/combine_logs.py '/ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242' to consolidate all logs
     732025-07-25T10:37:30.171799Z TestFramework (ERROR): 
     742025-07-25T10:37:30.171906Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
     752025-07-25T10:37:30.172049Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
     762025-07-25T10:37:30.172133Z TestFramework (ERROR): 
     77
     78
     79stderr:
     80[node 0] Cleaning up leftover process
     81
     82
     83Combine the logs and print the last 99999999 lines ...
     84
     85============
     86Combined log for /ci_container_base/ci/scratch/test_runner//test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242:
     87============
     88
     89 test  2025-07-25T10:37:15.282773Z TestFramework (INFO): PRNG seed is: 9066748361541480888 
     90 test  2025-07-25T10:37:15.282988Z TestFramework (DEBUG): Setting up network thread 
     91 test  2025-07-25T10:37:15.283864Z TestFramework (INFO): Initializing test directory /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242 
     92 test  2025-07-25T10:37:15.286296Z TestFramework.node0 (DEBUG): bitcoind started, waiting for RPC to come up 
     93 test  2025-07-25T10:37:15.288884Z TestFramework.node1 (DEBUG): bitcoind started, waiting for RPC to come up 
     94 node0 2025-07-25T10:37:15.313892Z [init] [init/common.cpp:151] [void init::LogPackageVersion()] Bitcoin Core version v29.99.0-443c32a3e686-dirty (release build) 
     95 node0 2025-07-25T10:37:15.313940Z [init] [init.cpp:731] [void InitParameterInteraction(ArgsManager &)] parameter interaction: -bind set -> setting -listen=1 
     96 node0 2025-07-25T10:37:15.314658Z [init] [kernel/context.cpp:20] [auto kernel::Context::Context()::(anonymous class)::operator()() const] Using the 'arm_shani(1way,2way)' SHA256 implementation 
     97 node1 2025-07-25T10:37:15.316791Z [init] [init/common.cpp:151] [void init::LogPackageVersion()] Bitcoin Core version v29.99.0-443c32a3e686-dirty (release build) 
     98 node1 2025-07-25T10:37:15.316825Z [init] [init.cpp:731] [void InitParameterInteraction(ArgsManager &)] parameter interaction: -bind set -> setting -listen=1 
     99 node1 2025-07-25T10:37:15.317582Z [init] [kernel/context.cpp:20] [auto kernel::Context::Context()::(anonymous class)::operator()() const] Using the 'arm_shani(1way,2way)' SHA256 implementation 
    100 node0 2025-07-25T10:37:15.420537Z [init] [init/common.cpp:119] [bool init::StartLogging(const ArgsManager &)] Default data directory /root/.bitcoin 
    101 node0 2025-07-25T10:37:15.420605Z [init] [init/common.cpp:120] [bool init::StartLogging(const ArgsManager &)] Using data directory /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242/node0/regtest 
    102 node0 2025-07-25T10:37:15.420697Z [init] [init/common.cpp:129] [bool init::StartLogging(const ArgsManager &)] Config file: /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242/node0/bitcoin.conf 
    103 node0 2025-07-25T10:37:15.420826Z [init] [common/args.cpp:850] [void ArgsManager::logArgsPrefix(const std::string &, const std::string &, const std::map<std::string, std::vector<common::SettingsValue>> &) const] Config file arg: regtest="1" 
    104 node0 2025-07-25T10:37:15.420924Z [init] [common/args.cpp:850] [void ArgsManager::logArgsPrefix(const std::string &, const std::string &, const std::map<std::string, std::vector<common::SettingsValue>> &) const] Config file arg: [regtest] bind="127.0.0.1" 
    105 node0 2025-07-25T10:37:15.420984Z [init] [common/args.cpp:850] [void ArgsManager::logArgsPrefix(const std::string &, const std::string &, const std::map<std::string, std::vector<common::SettingsValue>> &) const] Config file arg: [regtest] connect="0" 
    106 node0 2025-07-25T10:37:15.421061Z [init] [common/args.cpp:850] [void ArgsManager::logArgsPrefix(const std::string &, const std::string &, const std::map<std::string, std::vector<common::SettingsValue>> &) const] Config file arg: [regtest] discover="0" 
    107 node0 2025-07-25T10:37:15.421119Z [init] [common/args.cpp:850] [void ArgsManager::logArgsPrefix(const std::string &, const std::string &, const std::map<std::string, std::vector<common::SettingsValue>> &) const] Config file arg: [regtest] dnsseed="0" 
    108 <snip>
    109 node0 2025-07-25T10:37:29.304838Z [httpworker.3] [rpc/request.cpp:243] [void JSONRPCRequest::parse(const UniValue &)] [rpc] ThreadRPCServer method=listwallets user=__cookie__ 
    110 node0 2025-07-25T10:37:29.507042Z [http] [httpserver.cpp:308] [void http_request_cb(struct evhttp_request *, void *)] [http] Received a POST request for / from 127.0.0.1:39730 
    111 node0 2025-07-25T10:37:29.507621Z [httpworker.4] [rpc/request.cpp:243] [void JSONRPCRequest::parse(const UniValue &)] [rpc] ThreadRPCServer method=listwallets user=__cookie__ 
    112 test  2025-07-25T10:37:30.117073Z TestFramework (ERROR): Unexpected exception 
    113                                   Traceback (most recent call last):
    114                                     File "/ci_container_base/test/functional/test_framework/test_framework.py", line 195, in main
    115                                       self.run_test()
    116                                     File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in run_test
    117                                       ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
    118                                     File "/ci_container_base/test/functional/test_framework/util.py", line 289, in ensure_for
    119                                       if not f():
    120                                              ^^^
    121                                     File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in <lambda>
    122                                       ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
    123                                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    124                                     File "/ci_container_base/test/functional/test_framework/coverage.py", line 50, in __call__
    125                                       return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
    126                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    127                                     File "/ci_container_base/test/functional/test_framework/authproxy.py", line 137, in __call__
    128                                       response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
    129                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    130                                     File "/ci_container_base/test/functional/test_framework/authproxy.py", line 111, in _request
    131                                       return self._get_response()
    132                                              ^^^^^^^^^^^^^^^^^^^^
    133                                     File "/ci_container_base/test/functional/test_framework/authproxy.py", line 174, in _get_response
    134                                       http_response = self.__conn.getresponse()
    135                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^
    136                                     File "/usr/lib/python3.12/http/client.py", line 1428, in getresponse
    137                                       response.begin()
    138                                     File "/usr/lib/python3.12/http/client.py", line 331, in begin
    139                                       version, status, reason = self._read_status()
    140                                                                 ^^^^^^^^^^^^^^^^^^^
    141                                     File "/usr/lib/python3.12/http/client.py", line 300, in _read_status
    142                                       raise RemoteDisconnected("Remote end closed connection without"
    143                                   http.client.RemoteDisconnected: Remote end closed connection without response
    144 test  2025-07-25T10:37:30.119931Z TestFramework (DEBUG): Closing down network thread 
    145 test  2025-07-25T10:37:30.170430Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later. 
    146 test  2025-07-25T10:37:30.170649Z TestFramework (WARNING): Not cleaning up dir /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242 
    147 test  2025-07-25T10:37:30.170732Z TestFramework (ERROR): Test failed. Test logging available at /ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242/test_framework.log 
    148 test  2025-07-25T10:37:30.171130Z TestFramework (ERROR): 
    149 test  2025-07-25T10:37:30.171630Z TestFramework (ERROR): Hint: Call /ci_container_base/test/functional/combine_logs.py '/ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242' to consolidate all logs 
    150 test  2025-07-25T10:37:30.171799Z TestFramework (ERROR): 
    151 test  2025-07-25T10:37:30.171906Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 
    152 test  2025-07-25T10:37:30.172049Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues 
    153 test  2025-07-25T10:37:30.172133Z TestFramework (ERROR): 
    154
    155 node0 stderr ==================
    156WARNING: ThreadSanitizer: data race (pid=17110)
    157  Write of size 8 at 0xffff92417b20 by thread T1 (mutexes: write M0):
    158    [#0](/bitcoin-bitcoin/0/) operator delete(void*, unsigned long) <null> (bitcoind+0x1af774) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    159    [#1](/bitcoin-bitcoin/1/) void std::__1::__libcpp_operator_delete[abi:ne200100]<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>*, unsigned long>(std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>*, unsigned long) /usr/lib/llvm-20/bin/../include/c++/v1/__new/allocate.h:46:3 (bitcoind+0x741cd8) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    160    [#2](/bitcoin-bitcoin/2/) void std::__1::__libcpp_deallocate[abi:ne200100]<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>>(std::__1::__type_identity<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>>::type*, std::__1::__element_count, unsigned long) /usr/lib/llvm-20/bin/../include/c++/v1/__new/allocate.h:86:12 (bitcoind+0x741cd8)
    161    [#3](/bitcoin-bitcoin/3/) std::__1::allocator<std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>>::deallocate[abi:ne200100](std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>*, unsigned long) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/allocator.h:120:7 (bitcoind+0x741cd8)
    162    [#4](/bitcoin-bitcoin/4/) std::__1::__shared_ptr_pointer<wallet::CWallet*, void (*)(wallet::CWallet*), std::__1::allocator<wallet::CWallet>>::__on_zero_shared_weak() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:134:7 (bitcoind+0x741cd8)
    163    [#5](/bitcoin-bitcoin/5/) std::__1::weak_ptr<wallet::CWallet>::~weak_ptr() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:1315:15 (bitcoind+0x7e2bcc) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    164    [#6](/bitcoin-bitcoin/6/) wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'()::~() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/wallet/./wallet/rpc/encrypt.cpp:102:40 (bitcoind+0x7e2bcc)
    165    [#7](/bitcoin-bitcoin/7/) std::__1::__function::__alloc_func<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'(), std::__1::allocator<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'()>, void ()>::destroy[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:181:14 (bitcoind+0x7e2bcc)
    166    [#8](/bitcoin-bitcoin/8/) std::__1::__function::__func<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'(), std::__1::allocator<wallet::walletpassphrase()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const::'lambda'()>, void ()>::destroy() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:305:8 (bitcoind+0x7e2bcc)
    167    [#9](/bitcoin-bitcoin/9/) std::__1::__function::__value_func<void ()>::~__value_func[abi:ne200100]() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./scheduler.h (bitcoind+0x9f0af0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    168    [#10](/bitcoin-bitcoin/10/) std::__1::function<void ()>::~function() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:986:43 (bitcoind+0x9f0af0)
    169    [#11](/bitcoin-bitcoin/11/) CScheduler::serviceQueue() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./scheduler.cpp:62:9 (bitcoind+0x9f0af0)
    170    [#12](/bitcoin-bitcoin/12/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7::operator()() const /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./init.cpp:1364:94 (bitcoind+0x1d383c) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    171    [#13](/bitcoin-bitcoin/13/) decltype(std::declval<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&>()()) std::__1::__invoke[abi:ne200100]<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&>(AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x1d383c)
    172    [#14](/bitcoin-bitcoin/14/) void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne200100]<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&>(AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:251:5 (bitcoind+0x1d383c)
    173    [#15](/bitcoin-bitcoin/15/) void std::__1::__invoke_r[abi:ne200100]<void, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&>(AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x1d383c)
    174    [#16](/bitcoin-bitcoin/16/) std::__1::__function::__alloc_func<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7, std::__1::allocator<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7>, void ()>::operator()[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x1d383c)
    175    [#17](/bitcoin-bitcoin/17/) std::__1::__function::__func<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7, std::__1::allocator<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7>, void ()>::operator()() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x1d383c)
    176    [#18](/bitcoin-bitcoin/18/) std::__1::__function::__value_func<void ()>::operator()[abi:ne200100]() const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0xab77f8) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    177    [#19](/bitcoin-bitcoin/19/) std::__1::function<void ()>::operator()() const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0xab77f8)
    178    [#20](/bitcoin-bitcoin/20/) util::TraceThread(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/util/./util/thread.cpp:21:9 (bitcoind+0xab77f8)
    179    [#21](/bitcoin-bitcoin/21/) decltype(std::declval<void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>)>()(std::declval<char const*>(), std::declval<AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7>())) std::__1::__invoke[abi:ne200100]<void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7>(void (*&&)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*&&, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x1d33c0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    180    [#22](/bitcoin-bitcoin/22/) void std::__1::__thread_execute[abi:ne200100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7, 2ul, 3ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7>&, std::__1::__tuple_indices<2ul, 3ul>) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:199:3 (bitcoind+0x1d33c0)
    181    [#23](/bitcoin-bitcoin/23/) void* std::__1::__thread_proxy[abi:ne200100]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const*, AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7>>(void*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:208:3 (bitcoind+0x1d33c0)
    182
    183  Previous read of size 8 at 0xffff92417b20 by thread T16:
    184    [#0](/bitcoin-bitcoin/0/) std::__1::__shared_count::__release_shared[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_count.h:91:7 (bitcoind+0x6f70cc) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    185    [#1](/bitcoin-bitcoin/1/) std::__1::__shared_weak_count::__release_shared[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_count.h:120:25 (bitcoind+0x6f70cc)
    186    [#2](/bitcoin-bitcoin/2/) std::__1::shared_ptr<wallet::CWallet>::~shared_ptr[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:558:17 (bitcoind+0x6f70cc)
    187    [#3](/bitcoin-bitcoin/3/) std::__1::shared_ptr<wallet::CWallet>::reset[abi:ne200100]() /usr/lib/llvm-20/bin/../include/c++/v1/__memory/shared_ptr.h:608:50 (bitcoind+0x6f70cc)
    188    [#4](/bitcoin-bitcoin/4/) wallet::WaitForDeleteWallet(std::__1::shared_ptr<wallet::CWallet>&&) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/wallet/./wallet/wallet.cpp:264:12 (bitcoind+0x6f70cc)
    189    [#5](/bitcoin-bitcoin/5/) wallet::unloadwallet()::$_0::operator()(RPCHelpMan const&, JSONRPCRequest const&) const /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/wallet/./wallet/rpc/wallet.cpp:490:5 (bitcoind+0x6a3ad0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    190    [#6](/bitcoin-bitcoin/6/) decltype(std::declval<wallet::unloadwallet()::$_0&>()(std::declval<RPCHelpMan const&>(), std::declval<JSONRPCRequest const&>())) std::__1::__invoke[abi:ne200100]<wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&>(wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x6a3ad0)
    191    [#7](/bitcoin-bitcoin/7/) UniValue std::__1::__invoke_void_return_wrapper<UniValue, false>::__call[abi:ne200100]<wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&>(wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x6a3ad0)
    192    [#8](/bitcoin-bitcoin/8/) UniValue std::__1::__invoke_r[abi:ne200100]<UniValue, wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&>(wallet::unloadwallet()::$_0&, RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x6a3ad0)
    193    [#9](/bitcoin-bitcoin/9/) std::__1::__function::__alloc_func<wallet::unloadwallet()::$_0, std::__1::allocator<wallet::unloadwallet()::$_0>, UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()[abi:ne200100](RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x6a3ad0)
    194    [#10](/bitcoin-bitcoin/10/) std::__1::__function::__func<wallet::unloadwallet()::$_0, std::__1::allocator<wallet::unloadwallet()::$_0>, UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x6a3ad0)
    195    [#11](/bitcoin-bitcoin/11/) std::__1::__function::__value_func<UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()[abi:ne200100](RPCHelpMan const&, JSONRPCRequest const&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x9da0e0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    196    [#12](/bitcoin-bitcoin/12/) std::__1::function<UniValue (RPCHelpMan const&, JSONRPCRequest const&)>::operator()(RPCHelpMan const&, JSONRPCRequest const&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x9da0e0)
    197    [#13](/bitcoin-bitcoin/13/) RPCHelpMan::HandleRequest(JSONRPCRequest const&) const /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./rpc/util.cpp:663:20 (bitcoind+0x9da0e0)
    198    [#14](/bitcoin-bitcoin/14/) 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 /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./rpc/server.h:60:91 (bitcoind+0x3f7570) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    199    [#15](/bitcoin-bitcoin/15/) decltype(std::declval<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&>()(std::declval<JSONRPCRequest const&>(), std::declval<UniValue&>(), std::declval<bool>())) std::__1::__invoke[abi:ne200100]<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x3f7570)
    200    [#16](/bitcoin-bitcoin/16/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x3f7570)
    201    [#17](/bitcoin-bitcoin/17/) bool std::__1::__invoke_r[abi:ne200100]<bool, CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(CRPCCommand::CRPCCommand(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, RPCHelpMan (*)())::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x3f7570)
    202    [#18](/bitcoin-bitcoin/18/) std::__1::__function::__alloc_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()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x3f7570)
    203    [#19](/bitcoin-bitcoin/19/) 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&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x3f7570)
    204    [#20](/bitcoin-bitcoin/20/) std::__1::__function::__value_func<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x65c7a8) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    205    [#21](/bitcoin-bitcoin/21/) std::__1::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x65c7a8)
    206    [#22](/bitcoin-bitcoin/22/) wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/wallet/./wallet/interfaces.cpp:562:24 (bitcoind+0x65c7a8)
    207    [#23](/bitcoin-bitcoin/23/) decltype(std::declval<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&>()(std::declval<JSONRPCRequest const&>(), std::declval<UniValue&>(), std::declval<bool>())) std::__1::__invoke[abi:ne200100]<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x65c7a8)
    208    [#24](/bitcoin-bitcoin/24/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x65c7a8)
    209    [#25](/bitcoin-bitcoin/25/) bool std::__1::__invoke_r[abi:ne200100]<bool, wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x65c7a8)
    210    [#26](/bitcoin-bitcoin/26/) std::__1::__function::__alloc_func<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x65c7a8)
    211    [#27](/bitcoin-bitcoin/27/) std::__1::__function::__func<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<wallet::(anonymous namespace)::WalletLoaderImpl::registerRpcs()::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x65c7a8)
    212    [#28](/bitcoin-bitcoin/28/) std::__1::__function::__value_func<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x31c3fc) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    213    [#29](/bitcoin-bitcoin/29/) std::__1::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x31c3fc)
    214    [#30](/bitcoin-bitcoin/30/) node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)::operator()(JSONRPCRequest const&, UniValue&, bool) const /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./node/interfaces.cpp:511:24 (bitcoind+0x31c3fc)
    215    [#31](/bitcoin-bitcoin/31/) decltype(std::declval<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&>()(std::declval<JSONRPCRequest const&>(), std::declval<UniValue&>(), std::declval<bool>())) std::__1::__invoke[abi:ne200100]<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x31c3fc)
    216    [#32](/bitcoin-bitcoin/32/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x31c3fc)
    217    [#33](/bitcoin-bitcoin/33/) bool std::__1::__invoke_r[abi:ne200100]<bool, node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool>(node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)&, JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x31c3fc)
    218    [#34](/bitcoin-bitcoin/34/) std::__1::__function::__alloc_func<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x31c3fc)
    219    [#35](/bitcoin-bitcoin/35/) std::__1::__function::__func<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool), std::__1::allocator<node::(anonymous namespace)::RpcHandlerImpl::RpcHandlerImpl(CRPCCommand const&)::'lambda'(JSONRPCRequest const&, UniValue&, bool)>, bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool&&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x31c3fc)
    220    [#36](/bitcoin-bitcoin/36/) std::__1::__function::__value_func<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()[abi:ne200100](JSONRPCRequest const&, UniValue&, bool&&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x5147e0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    221    [#37](/bitcoin-bitcoin/37/) std::__1::function<bool (JSONRPCRequest const&, UniValue&, bool)>::operator()(JSONRPCRequest const&, UniValue&, bool) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x5147e0)
    222    [#38](/bitcoin-bitcoin/38/) ExecuteCommand(CRPCCommand const&, JSONRPCRequest const&, UniValue&, bool) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./rpc/server.cpp:504:20 (bitcoind+0x5147e0)
    223    [#39](/bitcoin-bitcoin/39/) ExecuteCommands(std::__1::vector<CRPCCommand const*, std::__1::allocator<CRPCCommand const*>> const&, JSONRPCRequest const&, UniValue&) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./rpc/server.cpp:471:13 (bitcoind+0x5147e0)
    224    [#40](/bitcoin-bitcoin/40/) CRPCTable::execute(JSONRPCRequest const&) const /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./rpc/server.cpp:491:13 (bitcoind+0x513848) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    225    [#41](/bitcoin-bitcoin/41/) JSONRPCExec(JSONRPCRequest const&, bool) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./rpc/server.cpp:347:31 (bitcoind+0x513070) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    226    [#42](/bitcoin-bitcoin/42/) HTTPReq_JSONRPC(std::__1::any const&, HTTPRequest*) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httprpc.cpp:165:21 (bitcoind+0x61a3cc) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    227    [#43](/bitcoin-bitcoin/43/) StartHTTPRPC(std::__1::any const&)::$_0::operator()(HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httprpc.cpp:337:80 (bitcoind+0x61a3cc)
    228    [#44](/bitcoin-bitcoin/44/) decltype(std::declval<StartHTTPRPC(std::__1::any const&)::$_0&>()(std::declval<HTTPRequest*>(), std::declval<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>())) std::__1::__invoke[abi:ne200100]<StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x61a3cc)
    229    [#45](/bitcoin-bitcoin/45/) bool std::__1::__invoke_void_return_wrapper<bool, false>::__call[abi:ne200100]<StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:243:12 (bitcoind+0x61a3cc)
    230    [#46](/bitcoin-bitcoin/46/) bool std::__1::__invoke_r[abi:ne200100]<bool, StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(StartHTTPRPC(std::__1::any const&)::$_0&, HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:273:10 (bitcoind+0x61a3cc)
    231    [#47](/bitcoin-bitcoin/47/) std::__1::__function::__alloc_func<StartHTTPRPC(std::__1::any const&)::$_0, std::__1::allocator<StartHTTPRPC(std::__1::any const&)::$_0>, bool (HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()[abi:ne200100](HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:167:12 (bitcoind+0x61a3cc)
    232    [#48](/bitcoin-bitcoin/48/) std::__1::__function::__func<StartHTTPRPC(std::__1::any const&)::$_0, std::__1::allocator<StartHTTPRPC(std::__1::any 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&) /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:319:10 (bitcoind+0x61a3cc)
    233    [#49](/bitcoin-bitcoin/49/) std::__1::__function::__value_func<bool (HTTPRequest*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)>::operator()[abi:ne200100](HTTPRequest*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:436:12 (bitcoind+0x626e64) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    234    [#50](/bitcoin-bitcoin/50/) std::__1::function<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&) const /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:995:10 (bitcoind+0x626e64)
    235    [#51](/bitcoin-bitcoin/51/) HTTPWorkItem::operator()() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httpserver.cpp:62:9 (bitcoind+0x626e64)
    236    [#52](/bitcoin-bitcoin/52/) WorkQueue<HTTPClosure>::Run() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httpserver.cpp:117:13 (bitcoind+0x6297a8) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    237    [#53](/bitcoin-bitcoin/53/) HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httpserver.cpp:419:12 (bitcoind+0x6216e8) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    238    [#54](/bitcoin-bitcoin/54/) decltype(std::declval<void (*)(WorkQueue<HTTPClosure>*, int)>()(std::declval<WorkQueue<HTTPClosure>*>(), std::declval<int>())) std::__1::__invoke[abi:ne200100]<void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int>(void (*&&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&&) /usr/lib/llvm-20/bin/../include/c++/v1/__type_traits/invoke.h:179:25 (bitcoind+0x629490) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    239    [#55](/bitcoin-bitcoin/55/) void std::__1::__thread_execute[abi:ne200100]<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int, 2ul, 3ul>(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>&, std::__1::__tuple_indices<2ul, 3ul>) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:199:3 (bitcoind+0x629490)
    240    [#56](/bitcoin-bitcoin/56/) void* std::__1::__thread_proxy[abi:ne200100]<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*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:208:3 (bitcoind+0x629490)
    241
    242  Mutex M0 (0xffff90401dd8) created at:
    243    [#0](/bitcoin-bitcoin/0/) pthread_mutex_trylock <null> (bitcoind+0x12017c) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    244    [#1](/bitcoin-bitcoin/1/) std::__1::mutex::try_lock() <null> (libc++.so.1+0x6d524) (BuildId: d86dd6c86e9893451404de81c223ae225f27a256)
    245    [#2](/bitcoin-bitcoin/2/) UniqueLock<AnnotatedMixin<std::__1::mutex>>::UniqueLock(AnnotatedMixin<std::__1::mutex>&, char const*, char const*, int, bool) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./sync.h:183:13 (bitcoind+0x9f0fb8) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    246    [#3](/bitcoin-bitcoin/3/) CScheduler::schedule(std::__1::function<void ()>, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./scheduler.cpp:74:9 (bitcoind+0x9f0fb8)
    247    [#4](/bitcoin-bitcoin/4/) CScheduler::scheduleFromNow(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./scheduler.h:55:9 (bitcoind+0x267dcc) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    248    [#5](/bitcoin-bitcoin/5/) CScheduler::scheduleEvery(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./scheduler.cpp:110:5 (bitcoind+0x9f1594) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    249    [#6](/bitcoin-bitcoin/6/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./init.cpp:1367:15 (bitcoind+0x1c7974) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    250    [#7](/bitcoin-bitcoin/7/) AppInit(node::NodeContext&) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:237:43 (bitcoind+0x1b1168) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    251    [#8](/bitcoin-bitcoin/8/) main /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:283:10 (bitcoind+0x1b1168)
    252
    253  Thread T1 'b-scheduler' (tid=17117, running) created by main thread at:
    254    [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x11dbb0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    255    [#1](/bitcoin-bitcoin/1/) std::__1::__libcpp_thread_create[abi:ne200100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/support/pthread.h:182:10 (bitcoind+0x1c790c) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    256    [#2](/bitcoin-bitcoin/2/) std::__1::thread::thread<void (&)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const (&) [10], AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7, 0>(void (&)(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::function<void ()>), char const (&) [10], AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*)::$_7&&) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:218:14 (bitcoind+0x1c790c)
    257    [#3](/bitcoin-bitcoin/3/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./init.cpp:1364:34 (bitcoind+0x1c790c)
    258    [#4](/bitcoin-bitcoin/4/) AppInit(node::NodeContext&) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:237:43 (bitcoind+0x1b1168) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    259    [#5](/bitcoin-bitcoin/5/) main /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:283:10 (bitcoind+0x1b1168)
    260
    261  Thread T16 'b-httpworker.13' (tid=17216, running) created by main thread at:
    262    [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x11dbb0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    263    [#1](/bitcoin-bitcoin/1/) std::__1::__libcpp_thread_create[abi:ne200100](unsigned long*, void* (*)(void*), void*) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/support/pthread.h:182:10 (bitcoind+0x629364) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    264    [#2](/bitcoin-bitcoin/2/) std::__1::thread::thread<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, 0>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__thread/thread.h:218:14 (bitcoind+0x629364)
    265    [#3](/bitcoin-bitcoin/3/) std::__1::thread* std::__1::construct_at[abi:ne200100]<std::__1::thread, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, std::__1::thread*>(std::__1::thread*, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/construct_at.h:40:49 (bitcoind+0x6213f0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    266    [#4](/bitcoin-bitcoin/4/) std::__1::thread* std::__1::__construct_at[abi:ne200100]<std::__1::thread, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, std::__1::thread*>(std::__1::thread*, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/construct_at.h:48:10 (bitcoind+0x6213f0)
    267    [#5](/bitcoin-bitcoin/5/) void std::__1::allocator_traits<std::__1::allocator<std::__1::thread>>::construct[abi:ne200100]<std::__1::thread, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&, void, 0>(std::__1::allocator<std::__1::thread>&, std::__1::thread*, void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__memory/allocator_traits.h:318:5 (bitcoind+0x6213f0)
    268    [#6](/bitcoin-bitcoin/6/) void std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::__construct_one_at_end[abi:ne200100]<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__vector/vector.h:742:5 (bitcoind+0x6213f0)
    269    [#7](/bitcoin-bitcoin/7/) std::__1::thread& std::__1::vector<std::__1::thread, std::__1::allocator<std::__1::thread>>::emplace_back<void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*, int&>(void (&)(WorkQueue<HTTPClosure>*, int), WorkQueue<HTTPClosure>*&&, int&) /usr/lib/llvm-20/bin/../include/c++/v1/__vector/vector.h:1133:5 (bitcoind+0x6213f0)
    270    [#8](/bitcoin-bitcoin/8/) StartHTTPServer() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httpserver.cpp:508:31 (bitcoind+0x6213f0)
    271    [#9](/bitcoin-bitcoin/9/) AppInitServers(node::NodeContext&) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./init.cpp:720:5 (bitcoind+0x1cf4a8) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    272    [#10](/bitcoin-bitcoin/10/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./init.cpp:1456:14 (bitcoind+0x1c83cc) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    273    [#11](/bitcoin-bitcoin/11/) AppInit(node::NodeContext&) /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:237:43 (bitcoind+0x1b1168) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
    274    [#12](/bitcoin-bitcoin/12/) main /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:283:10 (bitcoind+0x1b1168)
    275
    276SUMMARY: ThreadSanitizer: data race (/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/bin/bitcoind+0x1af774) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8) in operator delete(void*, unsigned long)
    277================== 
    278 node0 stderr Error: Invalid -wallet path 'w8_symlink'. -wallet path should point to a directory where wallet.dat and database/log.?????????? files can be stored, a location where such a directory could be created, or (for backwards compatibility) the name of an existing data file in -walletdir ("/ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242/node0/regtest/wallets") 
    279 node0 stderr Error: Specified -walletdir "debug.log" is not a directory 
    280 node0 stderr Error: Specified -walletdir "/ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242/node0/regtest/wallets/notadir" is not a directory 
    281 node0 stderr Error: Specified -walletdir "wallets" is a relative path 
    282 node0 stderr Error: Specified -walletdir "bad" does not exist 
    283 node0 stderr Warning: Ignoring duplicate -wallet w1. 
    284 node0 stderr Error: Specified -walletdir "wallets" does not exist 
    285 node0 stderr Error: Error parsing command line arguments: Invalid parameter -upgradewallet 
    286 node1 stderr Error: SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another instance of Bitcoin Core? 
    
  17. alexanderwiederin referenced this in commit 9997c3d993 on Jul 25, 2025
  18. pinheadmz commented at 3:43 pm on July 25, 2025: member

    I’m unable to reproduce so far building master at 6cdc5a90cffe9ced4ec50d2028c9896d25a9cb6a

    on Debian:

    cmake -B ./bld-cmake -DCMAKE_C_COMPILER='clang-16' -DCMAKE_CXX_COMPILER='clang++-16' -DCMAKE_CXX_FLAGS='-std=c++20' -DBUILD_GUI=OFF -DBUILD_TESTS=OFF -DSANITIZERS=thread && cmake --build ./bld-cmake --parallel $( nproc ) && TSAN_OPTIONS="suppressions=$(pwd)/test/sanitizer_suppressions/tsan:halt_on_error=1:second_deadlock_stack=1" ./bld-cmake/test/functional/wallet_multiwallet.py

    on macos (AppleClang 16.0.0)

    cmake -B ./bld-cmake -DBUILD_GUI=OFF -DBUILD_TESTS=OFF -DSANITIZERS=thread && cmake --build ./bld-cmake --parallel $( nproc ) && TSAN_OPTIONS="suppressions=$(pwd)/test/sanitizer_suppressions/tsan:halt_on_error=1:second_deadlock_stack=1" ./bld-cmake/test/functional/wallet_multiwallet.py

  19. alexanderwiederin referenced this in commit 8d6ebb9c4e on Jul 28, 2025
  20. alexanderwiederin referenced this in commit 533a4585b5 on Jul 28, 2025
  21. maflcko commented at 10:45 am on July 28, 2025: member

    I’m unable to reproduce so far building master at 6cdc5a9

    You’ll have to use libc++, I guess?

  22. pinheadmz commented at 2:43 pm on July 28, 2025: member

    Ok got a reliable crash on debian after upgrading to clang-20:

    0~/bitcoin$ rm -rf ./bld-cmake && \
    1cmake -B ./bld-cmake \
    2 -DCMAKE_C_COMPILER='clang-20' \
    3 -DCMAKE_CXX_COMPILER='clang++-20;-stdlib=libc++' \
    4 -DBUILD_GUI=OFF \
    5 -DBUILD_TESTS=OFF \
    6 -DSANITIZERS=thread && \
    7cmake --build ./bld-cmake --parallel $( nproc ) && \
    8TSAN_OPTIONS="suppressions=$(pwd)/test/sanitizer_suppressions/tsan:halt_on_error=1:second_deadlock_stack=1" ./bld-cmake/test/functional/wallet_multiwallet.py
    

    Still could not reproduce on macos using clang-20 and essentially the same command, but will use debian to investigate and try to fix

  23. maflcko commented at 2:45 pm on July 28, 2025: member
    It looks like a false positive, so I guess if you really want to fix it, you’ll have to do it upstream.
  24. theuni commented at 4:23 pm on July 29, 2025: member
  25. theuni commented at 4:30 pm on July 29, 2025: member

    Nm, I misunderstood that report. We don’t have a shared lib missing instrumentation.

    Edit: Nope, looking again, the problem seems to be that libc++ itself isn’t instrumented.

  26. fanquake commented at 12:04 pm on July 30, 2025: member

    the problem seems to be that libc++ itself isn’t instrumented.

    Following up on this in #33099.


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: 2025-08-02 18:13 UTC

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