DeleteNode() occurring during ProcessMessages() #23657

issue rebroad opened this issue on December 2, 2021
  1. rebroad commented at 8:45 PM on December 2, 2021: contributor

    I am having segmentation faults occurring due to the node being deleted while ProcessMessages() is still running. This only started occurring after I rebased from master including PR #21943. It appears that the previous functionality created an nRefCount via AddRef() that persisted until after running ProcessMessages() and SendMessages(), whereas it appears it is being released now prior to running ProcessMessages().

    Debug.log:-

    2021-12-02T19:58:44.778 SocketHandlerConnected: nBytes=0 recvSet=1 errorSet=0 Disconnect peer=56
    2021-12-02T19:58:44.778 recv version: /Satoshi:22.0.0/ v=70016 s=409 relay=1 peeraddr=98.111.202.161:8333 peer=56
    2021-12-02T19:58:44.779 DisconnectNodes: Add to m_nodes_disconnected m_nodes.size 11->10 GRC=1 peer=56
    2021-12-02T19:58:44.779 DisconnectNodes: Calling DeleteNode GRC=0 from m_nodes_disconnected loop. peer=56
    2021-12-02T19:58:44.779 send feefilter 0->1569 (actual: 1490) peer=56
    

    it crashes upon calling UpdatePreferredDownload() while processing the version message, as State(pfrom.GetId()) no longer exists.

  2. rebroad added the label Bug on Dec 2, 2021
  3. rebroad closed this on Dec 2, 2021

  4. fanquake removed the label Bug on Dec 6, 2021
  5. DrahtBot locked this on Dec 6, 2022

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 18:14 UTC

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