interfaces: MinerImpl::chainman(): Assertion 'm_node.chainman' failed. #35845

issue dergoegge opened this issue on July 30, 2026
  1. dergoegge commented at 12:43 PM on July 30, 2026: member

    The following assertion may fail during shutdown:

    node/interfaces.cpp:1057 ChainstateManager &node::(anonymous namespace)::MinerImpl::chainman(): Assertion `m_node.chainman' failed.
    

    Debug logs for the node that hit the assertion as well as the full test logs can be found here.

    This was found with a test running on Antithesis (see this gist for context on how we use it).

  2. fanquake commented at 12:48 PM on July 30, 2026: member
  3. dergoegge commented at 12:51 PM on July 30, 2026: member

    This only started failing a couple days ago, so likely a new issue from a ~recent PR.

  4. maflcko added this to the milestone 32.0 on Jul 30, 2026
  5. maflcko added the label IPC on Jul 30, 2026
  6. ryanofsky commented at 6:24 PM on July 30, 2026: contributor

    This bug looks like the one reported and described in #33387 (comment).

    I think it is probably not a new issue. Or at least I don't see any recent Bitcoin core changes that should cause it to happen more, so I wonder if this started failing due to some expansion of antithesis test coverage?

    Unfortunately it doesn't look like the fix suggested in the other issue is enough to fix this crash because it only waits for about-to-be executed requests to finish, not currently executing requests. This crash looks like the latter because of request [#46](/bitcoin-bitcoin/46/) canceled while executing in the log. (IIRC the suggested diff prevents crashes when requests are not executing because Cap'nProto destroys Proxy server objects in that case, and the ProxyServerBase destructor calls addAsyncCleanup to delete the server objects, and then disconnectIncoming waits for a final async cleanup function to execute. But disconnectIncoming won't wait for existing requests to finish because ProxyServer objects won't be destroyed while requests are executing so their cleanups will not be queued). One possible fix is https://github.com/ryanofsky/bitcoin/commit/116c3a84eecbc95d70f07f1a8bddaf35ec76feef (branch) but I think other approaches might be possible hooking different capnproto events to determine when calls have really finished.

  7. maflcko removed this from the milestone 32.0 on Jul 30, 2026

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-08-25 19:51 UTC

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