This repository has been archived by the owner on Aug 2, 2022. It is now read-only.
Resolve stalling producer schedule upgrade due to speculation #4840
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.
The producer_plugin was calculating the "next time to produce" for a producer taking into account the effects of the current speculative block on the producer schedule. As that block is speculative, it may not happen. In the case where it did not happen this calculated value would be wrong potentially causing a producer to sleep through its rightful time to produce. If all of the producers that could provide the last confirming block for a pending->active upgrade were in this state the upgrade stalled out. In normal operation, you can predict wake up assuming the block is not going to arrive because when the block arrives we recalculate.