Do not block pool processing on rebroadcast #13560
Merged
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.
Problem: in certain conditions processing of a pool item may stall block processing. This happens because transition frontier extension event is written to a synchronous pipe which is read from the merged reader of a few items:
Despite remote and local pool items being given a lower priority, processing of them may block transition frontier extension handling. It leads to a significant (multiple seconds) delay on one block, but also leads to accumulation of unprocessed blocks. If the delay repeats a few times (which is probabilistic), block delay may start growing as an avalanche, leading to hundreds of seconds of delays in block processing.
Explain your changes:
don't_wait_for
Explain how you tested your changes:
PR is built on top of #13550 because that contains Remove snark tables lock change which significantly simplifies pool processing code and makes implementation of this PR easier.
Checklist: