Skip to content

Correct suspended_channel and suspended_service message text. - #6

Open
echennells wants to merge 9 commits into
masterfrom
fix-suspended-error-messages
Open

Correct suspended_channel and suspended_service message text.#6
echennells wants to merge 9 commits into
masterfrom
fix-suspended-error-messages

Conversation

@echennells

Copy link
Copy Markdown
Owner

suspended_channel and suspended_service were introduced carrying the message text of sacrificed_channel (4af898f58, 2024-05-06 and 6c465034b, 2024-05-08).

suspended_channel therefore renders identically to sacrificed_channel, though the two are unrelated. sacrificed_channel is emitted continuously by block download work redistribution — measured at roughly 9k occurrences per peer per day during a testnet3 IBD. suspended_channel indicates the node suspended the network for a store prune or snapshot. The rare event is not distinguishable from routine churn in a log.

suspended_service renders as "sacrificed service", which corresponds to no error code.

The unit tests asserted the incorrect text, so they are updated alongside the messages. That is likely why this went unnoticed: correcting src/error.cpp alone fails the suite.

@echennells
echennells force-pushed the fix-suspended-error-messages branch from 1f1395d to 96f9378 Compare August 24, 2026 16:31
echennells and others added 9 commits September 8, 2026 08:21
Report a run of unservable block requests with one not_found rather than
one per item, testing servability with is_associated so that the block is
not fetched twice at a run boundary. The run is accumulated by the 70001
protocol, which knows the message can carry more than one item; the 106
protocol stops the channel on the first, so the send loop asks before it
continues and nothing is accumulated where nothing is reported.

Move the per-item reason to verbose. The channel is no longer stopped, so
an unservable request is ordinary peer input and the log is otherwise
trivially overflowed. The stopping case logs once, in the override that
decides to stop.

Select the transaction protocol by negotiated version, as with blocks,
rather than replacing the 106 protocol outright. That tier is not yet
reachable, as version.relay is read as false below bip37, where the peer
has no way to decline relay.

Add the two protocol headers to node.hpp, and cover the 70001 protocol
where it is attached directly rather than as the 70012 base.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Add configuration initialize to pack derived settings.
Both codes were added with the message text of sacrificed_channel, so
suspended_channel and sacrificed_channel render identically and cannot be
told apart in a log. sacrificed_channel is emitted continuously by block
download work redistribution, while suspended_channel indicates network
suspension for a store prune or snapshot, so the latter is not observable.

The unit tests asserted the incorrect text, so they are updated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@echennells
echennells force-pushed the fix-suspended-error-messages branch from 96f9378 to 464c3e0 Compare September 11, 2026 19:44
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.

2 participants