Skip to content
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

Merged

Conversation

wanderingbort
Copy link
Contributor

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.

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.
@wanderingbort wanderingbort merged commit 0bc2440 into EOSIO:release/1.1.x Jul 24, 2018
@wanderingbort wanderingbort deleted the feature/fix-producer-stall branch July 24, 2018 22:27
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants