Skip to content

net: FeeFilter min_relay is atomic, not inner.read - #321

Merged
reardencode merged 1 commit into
masterfrom
net/feefilter-minrelay
Sep 4, 2026
Merged

net: FeeFilter min_relay is atomic, not inner.read#321
reardencode merged 1 commit into
masterfrom
net/feefilter-minrelay

Conversation

@rearden-grok

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

Copy link
Copy Markdown
Contributor

Why

mainnet.log after #320: three tokio-rt-worker panics at tip-mode entry:

mempool inner read on tokio-rt-worker

Handshake sends FeeFilter via MempoolHub::min_relay_sat_kvb(), which still took a blocking inner read. IBD skips FeeFilter (relay off); tip-mode does not. Panic aborts the session task → follow_live=0, no INV/getdata/accepts, process still prints tip: perf.

What

  • -minrelaytxfee overlay is an AtomicU64. Session FeeFilter does not touch inner.
  • rebroadcast_unbroadcast uses try_contains (same class: session after accept_tx_async when relay is off).
  • Pins: min_relay_sat_kvb_does_not_panic_on_tokio_worker, rebroadcast_unbroadcast_does_not_panic_on_tokio_worker.

Lock facts stay in docs/concurrency.md.

Do not merge unless asked.

Tip-follow handshake called min_relay_sat_kvb() on the session, which
took a blocking mempool inner read. After #320's assert_not_reactor
that panicked tokio-rt-worker and left follow_live=0. Overlay lives
on an AtomicU64. rebroadcast_unbroadcast uses try_contains so
blocksonly re-INV does not park either.
@reardencode
reardencode merged commit 5cf51d6 into master Sep 4, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant