Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue Addressed
PR
Introduced a regression on the lookup pruning logic. If a lookup loses all peers before the block request downloads the block, it will get stuck. This is a relatively frequent occurrence. This bug will result in occasional warn logs on the user's terminals.
Example case events
drop_lookups_without_peers
runs on lookup Ahas_no_peers
returns trueis_awaiting_event
returns true <- so it doesn't get prunedis_awaiting_event
checks:awaiting_parent.is_some()
returns falseself.block_request_state.state.is_awaiting_event()
returns false (block awaiting download)component_requests
isWaitingForBlock
, so it returns true <- the bug is herelighthouse/beacon_node/network/src/sync/block_lookups/single_block_lookup.rs
Lines 174 to 177 in 193c7f8
Proposed Changes
Fix
is_awaiting_event
logic.