Skip to content

IPC server crashes on early client connection (assertion failure in proxy.h and interfaces.cpp) #34664

@plebhash

Description

@plebhash

this was originally reported on #33994 (see #33994 (comment) for a summarized context)


we are seeing Bitcoin Core crash when connected to SRI JDC

here's how we reproduced it on a macos with arm64 apple silicon:

  • enter https://stratumprotocol.org/
  • click "Start Mining"
  • follow the wizard to run JDC with docker
  • make sure you're connecting to SRI community mainnet deployment
  • make sure you launch JDC while Bitcoin Core v30.2 is still doing IBD

then bitcoin Core crashes with similar logs:

p@MacBook-Pro Downloads % ./bitcoin-30.2/bin/bitcoin -m node -ipcbind=unix
2026-02-23T16:23:17Z Bitcoin Core version v30.2.0 (release build)
2026-02-23T16:23:17Z Using the 'sse4(1way);sse41(4way)' SHA256 implementation
2026-02-23T16:23:17Z Default data directory /Users/p/Library/Application Support/Bitcoin
2026-02-23T16:23:17Z Using data directory /Users/p/Library/Application Support/Bitcoin
2026-02-23T16:23:17Z Config file: /Users/p/Library/Application Support/Bitcoin/bitcoin.conf
2026-02-23T16:23:17Z Config file arg: prune="200"
2026-02-23T16:23:17Z Config file arg: rpcallowip="0.0.0.0/0"
2026-02-23T16:23:17Z Config file arg: rpcbind="0.0.0.0"
2026-02-23T16:23:17Z Config file arg: rpcpassword=****
2026-02-23T16:23:17Z Config file arg: rpcuser=****
2026-02-23T16:23:17Z Config file arg: server="1"
2026-02-23T16:23:17Z Setting file arg: prune = "57220"
2026-02-23T16:23:17Z Setting file arg: wallet = ["novcanik"]
2026-02-23T16:23:17Z Command-line arg: ipcbind="unix"
2026-02-23T16:23:17Z Using at most 125 automatic connections (285 file descriptors available)
2026-02-23T16:23:17Z scheduler thread start
2026-02-23T16:23:17Z Listening for IPC requests on address unix:/Users/p/Library/Application Support/Bitcoin/node.sock
2026-02-23T16:23:17Z Binding RPC on address 0.0.0.0 port 8332
2026-02-23T16:23:17Z WARNING: the RPC server is not safe to expose to untrusted networks such as the public internet
2026-02-23T16:23:17Z Using rpcuser/rpcpassword authentication.
2026-02-23T16:23:17Z [warning] The use of rpcuser/rpcpassword is less secure, because credentials are configured in plain text. It is recommended that locally-run instances switch to cookie-based auth, or otherwise to use hashed rpcauth credentials. See share/rpcauth in the source directory for more information.
2026-02-23T16:23:17Z Starting HTTP server with 16 worker threads
2026-02-23T16:23:17Z Using wallet directory /Users/p/Library/Application Support/Bitcoin/wallets
2026-02-23T16:23:17Z init message: Verifying wallet(s)…
2026-02-23T16:23:17Z Using SQLite Version 3.46.1
2026-02-23T16:23:17Z Using wallet /Users/p/Library/Application Support/Bitcoin/wallets/novcanik
2026-02-23T16:23:17Z Using /16 prefix for IP bucketing
2026-02-23T16:23:17Z init message: Loading P2P addresses…
2026-02-23T16:23:17Z Loaded 66288 addresses from peers.dat  166ms
2026-02-23T16:23:17Z init message: Loading banlist…
2026-02-23T16:23:17Z SetNetworkActive: true
2026-02-23T16:23:17Z Cache configuration:
2026-02-23T16:23:17Z * Using 2.0 MiB for block index database
2026-02-23T16:23:17Z * Using 8.0 MiB for chain state database
2026-02-23T16:23:17Z * Using 440.0 MiB for in-memory UTXO set (plus up to 286.1 MiB of unused mempool space)
2026-02-23T16:23:17Z Script verification uses 11 additional threads
2026-02-23T16:23:17Z Using obfuscation key for blocksdir *.dat files (/Users/p/Library/Application Support/Bitcoin/blocks): '0000000000000000'
2026-02-23T16:23:17Z Opening LevelDB in /Users/p/Library/Application Support/Bitcoin/blocks/index
2026-02-23T16:23:17Z Opened LevelDB successfully
2026-02-23T16:23:17Z Using obfuscation key for /Users/p/Library/Application Support/Bitcoin/blocks/index: 0000000000000000
2026-02-23T16:23:17Z Using 16 MiB out of 16 MiB requested for signature cache, able to store 524288 elements
2026-02-23T16:23:17Z Using 16 MiB out of 16 MiB requested for script execution cache, able to store 524288 elements
2026-02-23T16:23:17Z init message: Loading block index…
2026-02-23T16:23:17Z Assuming ancestors of block 00000000000000000000611fd22f2df7c8fbd0688745c3a6c3bb5109cc2a12cb have valid signatures.
2026-02-23T16:23:17Z Setting nMinimumChainWork=0000000000000000000000000000000000000000dee8e2a309ad8a9820433c68
2026-02-23T16:23:17Z Prune configured to target 57220 MiB on disk for block and undo files.
2026-02-23T16:23:19Z Loading block index db: last block file = 5409
2026-02-23T16:23:19Z Loading block index db: last block file info: CBlockFileInfo(blocks=47, size=65771086, heights=937945...937991, time=2026-02-23...2026-02-23)
2026-02-23T16:23:19Z Checking all blk files are present...
2026-02-23T16:23:19Z Loading block index db: Block files have previously been pruned
2026-02-23T16:23:20Z Initializing chainstate Chainstate [ibd] @ height -1 (null)
2026-02-23T16:23:20Z Opening LevelDB in /Users/p/Library/Application Support/Bitcoin/chainstate
2026-02-23T16:23:20Z Opened LevelDB successfully
2026-02-23T16:23:20Z Using obfuscation key for /Users/p/Library/Application Support/Bitcoin/chainstate: ce0efc211ec92aaf
2026-02-23T16:23:20Z Loaded best chain: hashBestChain=00000000000000000001bd96c5201616a5c58aa6460f0d926cae714223666c93 height=937991 date=2026-02-23T16:17:08Z progress=0.999998
2026-02-23T16:23:20Z init message: Verifying blocks…
2026-02-23T16:23:20Z CreateNewBlock(): block weight: 812 txs: 0 fees: 0 sigops 0
2026-02-23T16:23:20Z Verifying last 6 blocks at level 3
2026-02-23T16:23:20Z Verification progress: 0%
2026-02-23T16:23:20Z Verification progress: 16%
2026-02-23T16:23:20Z Verification progress: 33%
2026-02-23T16:23:21Z Verification progress: 50%
2026-02-23T16:23:21Z Verification progress: 66%
2026-02-23T16:23:21Z [ipc:info] {bitcoin-node-32628/b-capnp-loop-621785} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages6MiningEEE
2026-02-23T16:23:21Z [ipc:info] {bitcoin-node-32628/b-capnp-loop-621785} IPC server: socket disconnected.
2026-02-23T16:23:21Z [ipc:info] {bitcoin-node-32628/b-capnp-loop-621785} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages4InitEEE
2026-02-23T16:23:21Z Verification progress: 83%
2026-02-23T16:23:21Z Verification progress: 99%
2026-02-23T16:23:21Z Verification: No coin database inconsistencies in last 6 blocks (8097 transactions)
2026-02-23T16:23:21Z Block index and chainstate loaded
2026-02-23T16:23:21Z CreateNewBlock(): block weight: 812 txs: 0 fees: 0 sigops 0
2026-02-23T16:23:21Z Using SQLite Version 3.46.1
2026-02-23T16:23:21Z Using wallet /Users/p/Library/Application Support/Bitcoin/wallets/novcanik
2026-02-23T16:23:21Z init message: Loading wallet…
2026-02-23T16:23:21Z [novcanik] Last client version = 300200
2026-02-23T16:23:21Z [novcanik] Descriptors: 8, Descriptor Keys: 0 plaintext, 1 encrypted, 1 total.
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = edb28fd27a4b47ae0e316603d3991cafad2f7e6fdcb096a89fdafcd34627702c, type = legacy, internal = false
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = f7aada836e876af423ca3e80339506f90d3bbf4a8c024b353967dd3161ff8be5, type = p2sh-segwit, internal = false
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = 1fcb15c6c2ee3a63f4a890bfdc69bc97a17d1f32a46337603511fcc8a37e95b3, type = bech32, internal = false
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = 995dd7b253d565466fba909ffe67ca8ab2cb1794f7fc604fcce7e36ff8b0f8c8, type = bech32m, internal = false
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = ad8668ef94ea7747a80402b8f466852bfca8780e321dcb67418cb4584f6b9978, type = legacy, internal = true
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = 4375208e97ac934895c2cce4e70a04193ab53cd445dfc00ba92d96136eba7fa1, type = p2sh-segwit, internal = true
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = 951c97ac022ad382ea68f3ec073fd41c5170513d0e8c430ad51320bb313abff7, type = bech32, internal = true
2026-02-23T16:23:21Z [novcanik] Setting spkMan to active: id = dfba5b81e3aa1473f58553f63eea5ba12b7ef5fe2f209ec665701b0d8292ab42, type = bech32m, internal = true
2026-02-23T16:23:21Z [novcanik] Wallet completed loading in             235ms
2026-02-23T16:23:21Z [novcanik] setKeyPool.size() = 8000
2026-02-23T16:23:21Z [novcanik] mapWallet.size() = 0
2026-02-23T16:23:21Z [novcanik] m_address_book.size() = 2
2026-02-23T16:23:21Z init message: Pruning blockstore…
2026-02-23T16:23:21Z initload thread start
2026-02-23T16:23:21Z block tree size = 937993
2026-02-23T16:23:21Z nBestHeight = 937991
2026-02-23T16:23:21Z mapport thread start
2026-02-23T16:23:21Z Loading 1814 mempool transactions from file...
2026-02-23T16:23:21Z torcontrol thread start
2026-02-23T16:23:21Z Bound to 127.0.0.1:8334
2026-02-23T16:23:21Z Bound to [::]:8333
2026-02-23T16:23:21Z Leaving InitialBlockDownload (latching to false)
2026-02-23T16:23:21Z Bound to 0.0.0.0:8333
2026-02-23T16:23:21Z Loaded 2 addresses from "anchors.dat"
2026-02-23T16:23:21Z 2 block-relay-only anchors will be tried for connections.
2026-02-23T16:23:21Z init message: Starting network threads…
2026-02-23T16:23:21Z net thread start
2026-02-23T16:23:21Z dnsseed thread start
2026-02-23T16:23:21Z addcon thread start
2026-02-23T16:23:21Z Waiting 300 seconds before querying DNS seeds.
2026-02-23T16:23:21Z init message: Done loading
2026-02-23T16:23:21Z msghand thread start
2026-02-23T16:23:21Z opencon thread start
2026-02-23T16:23:21Z tor: The only supported authentication mechanism left is password, but no password provided with -torpassword
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 10% (tried 182, 1632 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 20% (tried 363, 1451 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 30% (tried 545, 1269 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 40% (tried 726, 1088 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 50% (tried 907, 907 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 60% (tried 1089, 725 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 70% (tried 1270, 544 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 80% (tried 1452, 362 remaining)
2026-02-23T16:23:22Z Progress loading mempool transactions from file: 90% (tried 1633, 181 remaining)
2026-02-23T16:23:22Z Imported mempool transactions from file: 1814 succeeded, 0 failed, 0 expired, 0 already there, 0 waiting for initial broadcast
2026-02-23T16:23:22Z initload thread exit
2026-02-23T16:23:22Z CreateNewBlock(): block weight: 2269527 txs: 1814 fees: 1045954 sigops 3946
Assertion failed: (m_loop), function operator*, file proxy.h, line 59.
zsh: abort      ./bitcoin-30.2/bin/bitcoin -m node -ipcbind=unix

another way to crash it is to run JDC first, and immediately start Bitcoin Core v30.2 with these logs on tail:

2026-02-23T16:30:08Z Config file arg: rpcpassword=****
2026-02-23T16:30:08Z Config file arg: rpcuser=****
2026-02-23T16:30:08Z Config file arg: server="1"
2026-02-23T16:30:08Z Setting file arg: prune = "57220"
2026-02-23T16:30:08Z Setting file arg: wallet = ["novcanik"]
2026-02-23T16:30:08Z Command-line arg: ipcbind="unix"
2026-02-23T16:30:08Z Using at most 125 automatic connections (285 file descriptors available)
2026-02-23T16:30:08Z scheduler thread start
2026-02-23T16:30:08Z Listening for IPC requests on address unix:/Users/p/Library/Application Support/Bitcoin/node.sock
node/interfaces.cpp:980 chainman: Assertion `m_node.chainman' failed.
zsh: abort      ./bitcoin-30.2/bin/bitcoin -m node -ipcbind=unix

as inquired by @Sjors and clarified by @ryanofsky :

neither #34184 nor #34422 fix the root cause


@jbesraa also faces it

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions