[1.0.3] P2P: Schedule a retry of enqueue_sync_block when throttled #899
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.
When a connection is throttled it will not attempt to enqueue another block unless
enqueue_sync_block
is called. This will happen on any message sent to the connection. However, that can be a long time if the node has to wait for a heart-beat timeout before some message is sent to the peer.Instead, schedule a try-again call to
enqueue_sync_block
in 100ms.This fixes the current issue with
p2p_sync_throttle_test
which could not make progress because it repeately received a sync wait timeout.Partially resolves #882, See #897