-
Notifications
You must be signed in to change notification settings - Fork 969
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove stale pending upgrades #1661
Comments
actually we should just remove invalid upgrades altogether and consider no-op invalid |
I think that removing very old upgrades could be the best option (very simple): basically if an upgrade is passed its trigger time by more than X hours, just remove it. What do you think @sisuresh ? |
Yeah that sounds like a good idea. Does a hardcoded threshold of 12 hours make sense to you? |
yes sounds good to me @sisuresh |
@MonsieurNicolas What do you think about adding the logic to remove old upgrades to Right now, the execution path looks like |
I would just like to add a small note regarding this behavior: I'm using the commands section in the stellar-core.cfg to send upgrades for nodes in a private network. When I spin up a node the upgrades are armed so that once the network gains consensus the upgrades are triggered. The upgrades are set to be triggered for Unix epoch - following this change the upgrades need to be triggered using a time within 12 hours of now or in the future meaning the configuration needs to be constantly updated for nodes that require upgrades. What I have now: What I should have in future: My use case is definitely a corner case but I note for the Googler of the future... |
Right now it's possible to have stale upgrades queued in the "upgrade queue" if the node was not online and in sync when the upgrade happened.
This can have potentially bad effects such as causing unwanted votes for changing network settings when they eventually change.
This is caused by the current implementation that only
Upgrades::removeUpgrades
to remove upgrades.We should instead simply make
createUpgradesFor
clear out upgrades that areno op
and remove the (then redundant)Upgrades::removeUpgrades
code.The text was updated successfully, but these errors were encountered: