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

    <!--e57a25ab6845829454e8d69fc972939a-->

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

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

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

    <!--021abf342d371248e50ceaed478a90ca-->

    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.

    <!--174a7506f384e20aa4161008e828411d-->

    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.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

  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 12: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.

    <details><summary>more details</summary>

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

    WARNING: ThreadSanitizer: data race (pid=22900)
      Write of size 8 at 0x720c00021ab0 by thread T1 (mutexes: write M0):
        [#0](/bitcoin-bitcoin/0/) operator delete(void*, unsigned long) <null> (bitcoind+0x17e6cc) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#10](/bitcoin-bitcoin/10/) std::__1::function<void ()>::~function() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:986:43 (bitcoind+0xadd907)
        [#11](/bitcoin-bitcoin/11/) CScheduler::serviceQueue() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./scheduler.cpp:62:9 (bitcoind+0xadd907)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
      Previous read of size 8 at 0x720c00021ab0 by thread T16:
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#13](/bitcoin-bitcoin/13/) RPCHelpMan::HandleRequest(JSONRPCRequest const&) const /tmp/cirrus-ci-build/bitcoin-core/bld/src/./rpc/util.cpp:663:20 (bitcoind+0xac26da)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#51](/bitcoin-bitcoin/51/) HTTPWorkItem::operator()() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:62:9 (bitcoind+0x6ddf10)
        [#52](/bitcoin-bitcoin/52/) WorkQueue<HTTPClosure>::Run() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:117:13 (bitcoind+0x6e0f92) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#53](/bitcoin-bitcoin/53/) HTTPWorkQueueRun(WorkQueue<HTTPClosure>*, int) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:419:12 (bitcoind+0x6d8090) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#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)
        [#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)
        [#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)
      Mutex M0 (0x722000000588) created at:
        [#0](/bitcoin-bitcoin/0/) pthread_mutex_lock <null> (bitcoind+0xfb93b) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#1](/bitcoin-bitcoin/1/) std::__1::mutex::lock() <null> (libc++.so.1.0.20+0x7160c) (BuildId: f9f8eb7e398c095067b1e1cffb9b2252bf006a38)
        [#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)
        [#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)
        [#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)
        [#5](/bitcoin-bitcoin/5/) AppInit(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:237:43 (bitcoind+0x17fc2a) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#6](/bitcoin-bitcoin/6/) main /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:283:10 (bitcoind+0x17fc2a)
      Thread T1 'b-scheduler' (tid=22912, running) created by main thread at:
        [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0xf9c2e) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#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)
        [#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)
        [#3](/bitcoin-bitcoin/3/) AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./init.cpp:1365:34 (bitcoind+0x19c7d8)
        [#4](/bitcoin-bitcoin/4/) AppInit(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:237:43 (bitcoind+0x17fc2a) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#5](/bitcoin-bitcoin/5/) main /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:283:10 (bitcoind+0x17fc2a)
      Thread T16 'b-httpworker.13' (tid=22927, running) created by main thread at:
        [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0xf9c2e) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#8](/bitcoin-bitcoin/8/) StartHTTPServer() /tmp/cirrus-ci-build/bitcoin-core/bld/src/./httpserver.cpp:508:31 (bitcoind+0x6d7d4c)
        [#9](/bitcoin-bitcoin/9/) AppInitServers(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./init.cpp:721:5 (bitcoind+0x1a72d5) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#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)
        [#11](/bitcoin-bitcoin/11/) AppInit(node::NodeContext&) /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:237:43 (bitcoind+0x17fc2a) (BuildId: cfbd7d2fe965bb79ec7e44f4d6b230691518e5cd)
        [#12](/bitcoin-bitcoin/12/) main /tmp/cirrus-ci-build/bitcoin-core/bld/src/./bitcoind.cpp:283:10 (bitcoind+0x17fc2a)
    SUMMARY: 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

    </details>

  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:

    <details><summary>more details</summary>

    134/143 Test [#107](/bitcoin-bitcoin/107/): transaction_tests ....................   Passed   19.46 sec
    135/143 Test [#116](/bitcoin-bitcoin/116/): txvalidationcache_tests ..............   Passed   21.00 sec
    136/143 Test [#140](/bitcoin-bitcoin/140/): wallet_tests .........................   Passed   18.79 sec
    137/143 Test   [#5](/bitcoin-bitcoin/5/): secp256k1_exhaustive_tests ...........   Passed   67.90 sec
    138/143 Test  [#79](/bitcoin-bitcoin/79/): random_tests .........................   Passed   63.75 sec
    139/143 Test  [#31](/bitcoin-bitcoin/31/): coins_tests_dbbase ...................   Passed   93.41 sec
    140/143 Test [#130](/bitcoin-bitcoin/130/): coinselector_tests ...................   Passed  100.65 sec
    141/143 Test   [#7](/bitcoin-bitcoin/7/): bench_sanity_check ...................   Passed  173.72 sec
    142/143 Test   [#3](/bitcoin-bitcoin/3/): secp256k1_noverify_tests .............   Passed  258.21 sec
    143/143 Test   [#4](/bitcoin-bitcoin/4/): secp256k1_tests ......................   Passed  541.78 sec
    
    100% tests passed, 0 tests failed out of 143
    
    Total Test time (real) = 541.79 sec
    + '[' '' = true ']'
    + '[' true = true ']'
    + eval 'TEST_RUNNER_EXTRA=()'
    ++ TEST_RUNNER_EXTRA=()
    + LD_LIBRARY_PATH=/ci_container_base/depends/aarch64-unknown-linux-gnu/lib
    + /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
    16/270 - wallet_multiwallet.py failed, Duration: 15 s
    
    stdout:
    2025-07-25T10:37:15.282773Z TestFramework (INFO): PRNG seed is: 9066748361541480888
    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
    2025-07-25T10:37:16.186982Z TestFramework (INFO): Verify warning is emitted when failing to scan the wallets directory
    2025-07-25T10:37:16.187188Z TestFramework (WARNING): Skipping test involving chmod as it requires a non-root user.
    2025-07-25T10:37:20.220825Z TestFramework (INFO): Do not allow -upgradewallet with multiwallet
    2025-07-25T10:37:25.749244Z TestFramework (INFO): Check for per-wallet settxfee call
    2025-07-25T10:37:25.760051Z TestFramework (INFO): Test dynamic wallet loading
    2025-07-25T10:37:27.498254Z TestFramework (INFO): Load first wallet
    2025-07-25T10:37:27.543494Z TestFramework (INFO): Load second wallet
    2025-07-25T10:37:27.585449Z TestFramework (INFO): Concurrent wallet loading
    2025-07-25T10:37:27.627434Z TestFramework (INFO): Load remaining wallets
    2025-07-25T10:37:27.800707Z TestFramework (INFO): Test dynamic wallet creation.
    2025-07-25T10:37:27.918250Z TestFramework (INFO): Test dynamic wallet unloading
    2025-07-25T10:37:30.117073Z TestFramework (ERROR): Unexpected exception
    Traceback (most recent call last):
      File "/ci_container_base/test/functional/test_framework/test_framework.py", line 195, in main
        self.run_test()
      File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in run_test
        ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
      File "/ci_container_base/test/functional/test_framework/util.py", line 289, in ensure_for
        if not f():
               ^^^
      File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in <lambda>
        ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/ci_container_base/test/functional/test_framework/coverage.py", line 50, in __call__
        return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/ci_container_base/test/functional/test_framework/authproxy.py", line 137, in __call__
        response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/ci_container_base/test/functional/test_framework/authproxy.py", line 111, in _request
        return self._get_response()
               ^^^^^^^^^^^^^^^^^^^^
      File "/ci_container_base/test/functional/test_framework/authproxy.py", line 174, in _get_response
        http_response = self.__conn.getresponse()
                        ^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.12/http/client.py", line 1428, in getresponse
        response.begin()
      File "/usr/lib/python3.12/http/client.py", line 331, in begin
        version, status, reason = self._read_status()
                                  ^^^^^^^^^^^^^^^^^^^
      File "/usr/lib/python3.12/http/client.py", line 300, in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
    http.client.RemoteDisconnected: Remote end closed connection without response
    2025-07-25T10:37:30.170430Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later.
    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
    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
    2025-07-25T10:37:30.171130Z TestFramework (ERROR): 
    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
    2025-07-25T10:37:30.171799Z TestFramework (ERROR): 
    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.
    2025-07-25T10:37:30.172049Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues
    2025-07-25T10:37:30.172133Z TestFramework (ERROR): 
    
    
    stderr:
    [node 0] Cleaning up leftover process
    
    
    Combine the logs and print the last 99999999 lines ...
    
    ============
    Combined log for /ci_container_base/ci/scratch/test_runner//test_runner_₿_🏃_20250725_103610/wallet_multiwallet_242:
    ============
    
     test  2025-07-25T10:37:15.282773Z TestFramework (INFO): PRNG seed is: 9066748361541480888 
     test  2025-07-25T10:37:15.282988Z TestFramework (DEBUG): Setting up network thread 
     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 
     test  2025-07-25T10:37:15.286296Z TestFramework.node0 (DEBUG): bitcoind started, waiting for RPC to come up 
     test  2025-07-25T10:37:15.288884Z TestFramework.node1 (DEBUG): bitcoind started, waiting for RPC to come up 
     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) 
     node0 2025-07-25T10:37:15.313940Z [init] [init.cpp:731] [void InitParameterInteraction(ArgsManager &)] parameter interaction: -bind set -> setting -listen=1 
     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 
     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) 
     node1 2025-07-25T10:37:15.316825Z [init] [init.cpp:731] [void InitParameterInteraction(ArgsManager &)] parameter interaction: -bind set -> setting -listen=1 
     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 
     node0 2025-07-25T10:37:15.420537Z [init] [init/common.cpp:119] [bool init::StartLogging(const ArgsManager &)] Default data directory /root/.bitcoin 
     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 
     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 
     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" 
     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" 
     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" 
     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" 
     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" 
     <snip>
     node0 2025-07-25T10:37:29.304838Z [httpworker.3] [rpc/request.cpp:243] [void JSONRPCRequest::parse(const UniValue &)] [rpc] ThreadRPCServer method=listwallets user=__cookie__ 
     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 
     node0 2025-07-25T10:37:29.507621Z [httpworker.4] [rpc/request.cpp:243] [void JSONRPCRequest::parse(const UniValue &)] [rpc] ThreadRPCServer method=listwallets user=__cookie__ 
     test  2025-07-25T10:37:30.117073Z TestFramework (ERROR): Unexpected exception 
                                       Traceback (most recent call last):
                                         File "/ci_container_base/test/functional/test_framework/test_framework.py", line 195, in main
                                           self.run_test()
                                         File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in run_test
                                           ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
                                         File "/ci_container_base/test/functional/test_framework/util.py", line 289, in ensure_for
                                           if not f():
                                                  ^^^
                                         File "/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/test/functional/wallet_multiwallet.py", line 366, in <lambda>
                                           ensure_for(duration=1.1, f=lambda: 'w2' not in self.nodes[0].listwallets())
                                                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                         File "/ci_container_base/test/functional/test_framework/coverage.py", line 50, in __call__
                                           return_val = self.auth_service_proxy_instance.__call__(*args, **kwargs)
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                         File "/ci_container_base/test/functional/test_framework/authproxy.py", line 137, in __call__
                                           response, status = self._request('POST', self.__url.path, postdata.encode('utf-8'))
                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                         File "/ci_container_base/test/functional/test_framework/authproxy.py", line 111, in _request
                                           return self._get_response()
                                                  ^^^^^^^^^^^^^^^^^^^^
                                         File "/ci_container_base/test/functional/test_framework/authproxy.py", line 174, in _get_response
                                           http_response = self.__conn.getresponse()
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^
                                         File "/usr/lib/python3.12/http/client.py", line 1428, in getresponse
                                           response.begin()
                                         File "/usr/lib/python3.12/http/client.py", line 331, in begin
                                           version, status, reason = self._read_status()
                                                                     ^^^^^^^^^^^^^^^^^^^
                                         File "/usr/lib/python3.12/http/client.py", line 300, in _read_status
                                           raise RemoteDisconnected("Remote end closed connection without"
                                       http.client.RemoteDisconnected: Remote end closed connection without response
     test  2025-07-25T10:37:30.119931Z TestFramework (DEBUG): Closing down network thread 
     test  2025-07-25T10:37:30.170430Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later. 
     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 
     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 
     test  2025-07-25T10:37:30.171130Z TestFramework (ERROR): 
     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 
     test  2025-07-25T10:37:30.171799Z TestFramework (ERROR): 
     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. 
     test  2025-07-25T10:37:30.172049Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues 
     test  2025-07-25T10:37:30.172133Z TestFramework (ERROR): 
    
     node0 stderr ==================
    WARNING: ThreadSanitizer: data race (pid=17110)
      Write of size 8 at 0xffff92417b20 by thread T1 (mutexes: write M0):
        [#0](/bitcoin-bitcoin/0/) operator delete(void*, unsigned long) <null> (bitcoind+0x1af774) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#10](/bitcoin-bitcoin/10/) std::__1::function<void ()>::~function() /usr/lib/llvm-20/bin/../include/c++/v1/__functional/function.h:986:43 (bitcoind+0x9f0af0)
        [#11](/bitcoin-bitcoin/11/) CScheduler::serviceQueue() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./scheduler.cpp:62:9 (bitcoind+0x9f0af0)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
    
      Previous read of size 8 at 0xffff92417b20 by thread T16:
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#51](/bitcoin-bitcoin/51/) HTTPWorkItem::operator()() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httpserver.cpp:62:9 (bitcoind+0x626e64)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
    
      Mutex M0 (0xffff90401dd8) created at:
        [#0](/bitcoin-bitcoin/0/) pthread_mutex_trylock <null> (bitcoind+0x12017c) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
        [#1](/bitcoin-bitcoin/1/) std::__1::mutex::try_lock() <null> (libc++.so.1+0x6d524) (BuildId: d86dd6c86e9893451404de81c223ae225f27a256)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#8](/bitcoin-bitcoin/8/) main /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:283:10 (bitcoind+0x1b1168)
    
      Thread T1 'b-scheduler' (tid=17117, running) created by main thread at:
        [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x11dbb0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
        [#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)
        [#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)
        [#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)
        [#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)
        [#5](/bitcoin-bitcoin/5/) main /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:283:10 (bitcoind+0x1b1168)
    
      Thread T16 'b-httpworker.13' (tid=17216, running) created by main thread at:
        [#0](/bitcoin-bitcoin/0/) pthread_create <null> (bitcoind+0x11dbb0) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#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)
        [#8](/bitcoin-bitcoin/8/) StartHTTPServer() /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./httpserver.cpp:508:31 (bitcoind+0x6213f0)
        [#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)
        [#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)
        [#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)
        [#12](/bitcoin-bitcoin/12/) main /ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/src/./bitcoind.cpp:283:10 (bitcoind+0x1b1168)
    
    SUMMARY: ThreadSanitizer: data race (/ci_container_base/ci/scratch/build-aarch64-unknown-linux-gnu/bin/bitcoind+0x1af774) (BuildId: b2fa3bc40a41b9880f72bdbcb3cd045b97456fe8) in operator delete(void*, unsigned long)
    ================== 
     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") 
     node0 stderr Error: Specified -walletdir "debug.log" is not a directory 
     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 
     node0 stderr Error: Specified -walletdir "wallets" is a relative path 
     node0 stderr Error: Specified -walletdir "bad" does not exist 
     node0 stderr Warning: Ignoring duplicate -wallet w1. 
     node0 stderr Error: Specified -walletdir "wallets" does not exist 
     node0 stderr Error: Error parsing command line arguments: Invalid parameter -upgradewallet 
     node1 stderr Error: SQLiteDatabase: Unable to obtain an exclusive lock on the database, is it being used by another instance of Bitcoin Core? 
    

    </details>

  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:

    ~/bitcoin$ rm -rf ./bld-cmake && \
    cmake -B ./bld-cmake \
     -DCMAKE_C_COMPILER='clang-20' \
     -DCMAKE_CXX_COMPILER='clang++-20;-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
    

    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: 2026-04-22 06:12 UTC

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