Fix: Don't flag consensus as stalled prematurely #5627
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.
High Level Overview of Change
Fix stalled consensus detection to prevent false positives in situations where insufficient proposals1 have been received and there are no disputed transactions.
Context of Change
Stalled consensus detection was added to 2.5.0 in response to a network consensus halt that caused a round to run for over an hour. See #5277 and #5318.
It has a flaw that makes it very easy to have false positives. Those false positives are usually mitigated by other checks that prevent them from having an effect, but there have been several instances of validators "running ahead" because there are circumstances where the other checks are "successful", allowing the stall state to be checked.
Type of Change
Footnotes
Insufficient meaning the node has received proposals from fewer than 3/4 of the number of participants in the previous round. ↩