Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content

crash during IPC cleanup after interruptWait() is called #34250

@plebhash

Description

@plebhash

while working on stratum-mining/sv2-apps#177, I'm noticing a new crash

steps to reproduce:

  • run Bitcoin Core v30.2 on mainnet
  • git clone https://github.com/plebhash/sv2-apps -b 2026-01-09-bitcoin-core-v30-2
  • edit sv2-apps/pool-apps/pool/config-examples/mainnet/pool-config-bitcoin-core-ipc-example.toml so that unix_socket_path field points to node.sock
  • launch Pool via: cd sv2-apps/pool-apps/pool; cargo run -- -c config-examples/mainnet/pool-config-bitcoin-core-ipc-example.toml
  • let Pool run for a while
  • kill Pool with ctrl+c

this does not happen deterministically, so a few attempts of launching then killing Pool might be needed

but eventually Bitcoin Core crashes with a few different log variations:

2026-01-10T22:48:03Z [ipc] {bitcoin-node-35006/b-capnp-loop-203488} IPC server recv request  #96 BlockTemplate.getCoinbaseMerklePath$Params
2026-01-10T22:48:03Z [ipc] {bitcoin-node-35006/b-capnp-loop-203488} IPC server post request  #96 {bitcoin-node-35006/206817 (from )}
2026-01-10T22:48:03Z [ipc] {bitcoin-node-35006/b-capnp-loop-203488} IPC server send response #96 BlockTemplate.getCoinbaseMerklePath$Results
2026-01-10T22:48:07Z [ipc] {bitcoin-node-35006/b-capnp-loop-203488} IPC server recv request  #97 BlockTemplate.waitNext$Params
2026-01-10T22:48:07Z [ipc] {bitcoin-node-35006/b-capnp-loop-203488} IPC server post request  #97 {bitcoin-node-35006/206817 (from )}
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server: socket disconnected.
2026-01-10T22:48:07Z [ipc:info] {bitcoin-node-35006/b-capnp-loop-203488} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE
2026-01-10T22:48:08Z CreateNewBlock(): block weight: 3998742 txs: 599 fees: 515599 sigops 13307
libc++abi: terminating due to uncaught exception of type std::__1::system_error: mutex lock failed: Invalid argument
[1]    35006 abort      ./bitcoin-30.2/bin/bitcoin -m node -ipcbind=unix -prune=555 -debug=ipc
2026-01-10T22:22:02Z [ipc] {bitcoin-node-19528/b-capnp-loop-144717} IPC server send response #134 BlockTemplate.getCoinbaseMerklePath$Results
2026-01-10T22:22:03Z [ipc] {bitcoin-node-19528/b-capnp-loop-144717} IPC server recv request  #135 BlockTemplate.waitNext$Params
2026-01-10T22:22:03Z [ipc] {bitcoin-node-19528/b-capnp-loop-144717} IPC server post request  #135 {bitcoin-node-19528/147843 (from )}
2026-01-10T22:22:04Z CreateNewBlock(): block weight: 3998510 txs: 4931 fees: 315281 sigops 999
2026-01-10T22:22:04Z [ipc:info] {bitcoin-node-19528/b-capnp-loop-144717} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:22:04Z [ipc:info] {bitcoin-node-19528/b-capnp-loop-144717} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:22:04Z [ipc:info] {bitcoin-node-19528/b-capnp-loop-144717} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:22:04Z [ipc:info] {bitcoin-node-19528/b-capnp-loop-144717} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
2026-01-10T22:22:04Z [ipc:info] {bitcoin-node-19528/b-capnp-loop-144717} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE
2026-01-10T22:22:04Z [ipc:info] {bitcoin-node-19528/b-capnp-loop-144717} IPC server: socket disconnected.
2026-01-10T22:22:04Z [ipc:info] {bitcoin-node-19528/b-capnp-loop-144717} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE
2026-01-10T22:22:05Z CreateNewBlock(): block weight: 3998649 txs: 4928 fees: 336652 sigops 1030
Assertion failed: (m_loop), function operator*, file proxy.h, line 59.
[1]    19528 abort      ./bitcoin-30.2/bin/bitcoin -m node -ipcbind=unix -prune=555 -debug=ipc 

cc @ryanofsky @ismaelsadeeq

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions