Skip to content

net: park orphans without locking mempool on the P2P reactor - #409

Merged
reardencode merged 3 commits into
masterfrom
net/core-functional-orphan-log
Sep 10, 2026
Merged

net: park orphans without locking mempool on the P2P reactor#409
reardencode merged 3 commits into
masterfrom
net/core-functional-orphan-log

Conversation

@rearden-grok

@rearden-grok rearden-grok Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Overnight core-functional on master (run 34471796784) failed feature_bip68_sequence.py (block sync timeout) and p2p_ibd_txrelay.py (ping timeout after an unsolicited missing-input tx). Both sit on the orphanage merge (P2P orphanage: park is not reject, fetch parents, 1p1c, compact extra #404).
  • Parking called orphan_count() (inner mempool RwLock) on tokio-rt-worker, which panics the P2P reader so ping/block-sync never complete. The park log now emits txrelay: park {txid} with no lock; parent GETDATA is unchanged.
  • Core p2p_ibd_txrelay.py looks for was not accepted in debug.log. That needle is emitted by the shim (debuglog_map.toml), not by changing production reject/park language.

Test plan

  • cargo test -p rbitcoin-net parked_orphan
  • ./scripts/core-functional/map_debuglog_test.sh
  • labeled core-functional nightly set (this PR)

Made with Cursor

rbitcoin-grok and others added 2 commits September 10, 2026 07:03
Nightly p2p_ibd_txrelay and feature_bip68_sequence stalled after a park:
the debug log called orphan_count(), which takes the inner RwLock on
tokio-rt-worker and panics the reader, so ping/block-sync never complete.
Log the txid only; GETDATA parents is unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
p2p_ibd_txrelay.py looks for that substring in debug.log. Keep production
as txrelay: park; the shim emits Core's needle.

Co-authored-by: Cursor <cursoragent@cursor.com>
@rearden-grok rearden-grok Bot added the core-functional Run Core functional nightly.sh on this PR (inventory + release-pin warn) label Sep 10, 2026
The park→was-not-accepted rule is a harness contract. Run the existing
map_debuglog_test.sh from nightly.sh so labeled PRs and cron hit it.

Co-authored-by: Cursor <cursoragent@cursor.com>
@reardencode
reardencode merged commit 2f0a95c into master Sep 10, 2026
16 checks passed
@rearden-grok
rearden-grok Bot deleted the net/core-functional-orphan-log branch September 10, 2026 17:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core-functional Run Core functional nightly.sh on this PR (inventory + release-pin warn)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant