[31.x] Backports #35046

pull fanquake wants to merge 10 commits into bitcoin:31.x from fanquake:31_1_backports changing 12 files +213 −388
  1. fanquake commented at 8:50 AM on April 10, 2026: member
  2. fanquake added this to the milestone 31.1 on Apr 10, 2026
  3. DrahtBot added the label Backport on Apr 10, 2026
  4. DrahtBot commented at 8:50 AM on April 10, 2026: 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/35046.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK achow101
    Stale ACK optout21

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

    LLM Linter (✨ experimental)

    Possible places where comparison-specific test macros should replace generic comparisons:

    • [test/functional/test_framework/test_framework.py] assert(conn.handler_index < len(self._handlers)) -> assert_greater_than(len(self._handlers), conn.handler_index)

    <sup>2026-05-05 13:15:17</sup>

  5. net_processing: don't modify addrman for private broadcast connections
    It is best if the internal addrman database is not modified with
    information coming from private broadcast connections because that
    information can potentially later be sent via other connections.
    
    Co-authored-by: Greg Sanders <gsanders87@gmail.com>
    Co-authored-by: Lőrinc <pap.lorinc@gmail.com>
    
    Github-Pull: #35032
    Rebased-From: 1ed1a124028aa6783ecdd8c82083a3d7a6a16e53
    27e5a3020a
  6. test: Add missing self.options.timeout_factor scale in tool_bitcoin_chainstate.py
    Apply the timeout factor inside the add_block function.
    
    Also, force named args for the two expected strings.
    
    Also, add trailing comma for style.
    
    Github-Pull: #35080
    Rebased-From: fa02eb87df0b4a615a3e027711326f5506e5507a
    20480f5eb9
  7. fanquake force-pushed on Apr 16, 2026
  8. DrahtBot added the label CI failed on Apr 16, 2026
  9. in doc/release-notes.md:333 in 7078a84664 outdated
     332 | -- Murch
     333 | -- Musa Haruna
     334 | -- naiyoma
     335 | -- nervana21
     336 | -- Novo
     337 | -- optout
    


    optout21 commented at 10:01 AM on April 21, 2026:

    7078a84 doc: update release notes for v31.x:

    Nit: Not sure if this is auto-generated, but I wouldn't mind being mentioned here 😎 (due to #34863)


    fanquake commented at 10:45 AM on April 21, 2026:

    Just hadn't updated the docs yet. You are listed now.

  10. optout21 commented at 10:06 AM on April 21, 2026: contributor

    crACK 39455140b92a5a27307ff33b12b72eb43440b6b1

    Looked through all 4 commits (as of 39455140b92a5a27307ff33b12b72eb43440b6b1), LGTM.

  11. test: Add clean shutdown to Socks5Server
    The `Socks5Server` utility handles multiple incoming connections,
    which are handled in separate background threads.
    The `stop()` method unblocks and waits for the main background thread
    cleanly, but it doesn't attempt to wait for any handler threads.
    This change stores handler threads and connections, and attempts
    to shut them down before `stop()` returns.
    
    Co-authored-by: vasild <vd@FreeBSD.org>
    Co-authored-by: w0xlt <94266259+w0xlt@users.noreply.github.com>
    
    Github-Pull: #34863
    Rebased-From: 6ac49373aac1228e427e17a4b7b38fc1ba029208
    e1545b56b9
  12. test: Add is_connected_to helper
    Needed in the next commit.
    
    Co-Authored-By: David Gumberg <davidzgumberg@gmail.com>
    
    Github-Pull: #34425
    Rebased-From: faa404e119c54526077b056f6f380782e64986c4
    332d2a2ef2
  13. test: Stricter checks in rpc_setban.py
    Make the checks stricter and easier to follow:
    * Fix a typo.
    * After the first ban from node 1 wait until node 0 "sees" the ban.
    * Move the restart_node out of the debug log context, to avoid bloat.
    * Removed the timeout from the outer/lower exit stack to check "dropped
      (banned)\n" on node 1, because the inner/top exit stack waits longer.
    * The inner/top exit stack checks for the both disconnections peer=2 and
      possibly peer=3 (for v2->v1 retry).
    * And finally, add a redundant assert to confirm once more that node 0
      is has "seen" the ban.
    
    Github-Pull: #34425
    Rebased-From: fa21edddb2722f7188130e56b06985ee2ec3ec1c
    402f347fd5
  14. test: Fix all races after a socket is closed gracefully
    This waits for any disconnect (e.g. from a restart of one of the nodes)
    to fully happen before the next connect.
    
    Can be reviewed with the git option:
    
    --color-moved=dimmed-zebra
    
    Github-Pull: #34425
    Rebased-From: fab27726478d686dcd66d26d3b7b34aa323b8066
    bb536df042
  15. test: Remove unused, confusing and brittle connect_nodes.wait_for_connect
    The option is unused since the last removals in:
    * 4c40a923f003420193aa574745f70788bcf35265, and
    * 81bf3ebff7e7108bbfbf6fe4e122f4e52f278701
    
    It was brittle and lead to intermittent test issues. Generally, it is
    also confusing, because if a test wanted to connect nodes without
    checking their connection, it can use `addnode`, like the rpc_setban.py
    test.
    
    So fix all issues by removing it.
    
    Github-Pull: #34425
    Rebased-From: fae807ed25561bab7148c5a0d7bd847314c79d88
    ab19213660
  16. DrahtBot removed the label CI failed on Apr 21, 2026
  17. fanquake force-pushed on Apr 21, 2026
  18. multi_index: fix compilation failure with boost >= 1.91
    This effectively reverts a3cb309e7c31853f272bffaa65fb6ab0a7cc4083 from PR #30194.
    
    That PR reduced the multi_index type signatures as recommended upstream, but
    this is no longer supported as of boost 1.91 because it is no longer necessary.
    1.91 drops support for the pre-c++11 work-arounds that bloated the type
    signatures to begin with.
    
    The upstream `BOOST_MULTI_INDEX_ENABLE_MPL_SUPPORT` define is meant to provide
    compatibility with removed features, but it does not work for this case. Using
    `indexed_by` directly when defining the `multi_index` (as opposed to inheriting
    from it) works with all versions, and avoids the use of the back-compat define.
    
    This is a slight regression when building against boost < 1.91 because the
    bloated type signatures are reintroduced in that case, but it's not significant
    enough to go to the trouble of introducing version detection and ifdefs.
    
    Github-Pull: #35175
    Rebased-From: 0bc9d354dfd8074d1c36a891a69b6585a8775c65
    2eafae9dc1
  19. fanquake force-pushed on Apr 29, 2026
  20. fanquake marked this as ready for review on Apr 30, 2026
  21. fanquake force-pushed on May 5, 2026
  22. ci: unconfine seccomp for i686 no IPC
    Docker 29.4.2 blocks `socketcall(2)` in the default seccomp profile:
    https://docs.docker.com/engine/release-notes/29/#2942
    https://github.com/moby/profiles/releases/tag/seccomp%2Fv0.2.2
    https://github.com/moby/moby/pull/52501
    
    That affects the `i686, no IPC` job because it runs 32-bit Linux test binaries inside Docker.
    
    Add Docker's documented `--security-opt seccomp=unconfined` workaround to this job's `CI_CONTAINER_CAP` - the hook `ci/test/02_run_container.py` already appends to `docker run`.
    
    This restores socket availability for the 32-bit test binaries throughout the job:
    https://docs.docker.com/engine/security/seccomp/#run-without-the-default-seccomp-profile
    
    Github-Pull: #35202
    Rebased-From: 11c9ef92a8daf030f75f88f324396b2248c65a64
    1bb9c40bb8
  23. doc: update release notes for v31.x 6bb2b07587
  24. fanquake force-pushed on May 5, 2026
  25. DrahtBot added the label CI failed on May 5, 2026
  26. fanquake requested review from willcl-ark on May 5, 2026
  27. fanquake requested review from marcofleon on May 5, 2026
  28. DrahtBot removed the label CI failed on May 5, 2026
  29. achow101 commented at 9:13 AM on May 6, 2026: member

    ACK 6bb2b07587d31f844072cf65a95b40a5cceabf62

  30. DrahtBot requested review from optout21 on May 6, 2026
  31. achow101 merged this on May 6, 2026
  32. achow101 closed this on May 6, 2026

  33. fanquake deleted the branch on May 6, 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-05-20 06:52 UTC