You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The bot which reminds us to promote canary to production in a timely fashion has been sending us double notifications, some time apart.
2023-07-19 18:13 — Nextstrain Bot
Changes are lingering on next.nextstrain.org.
Review the changes and promote (if appropriate) via the Heroku Dashboard.
2023-07-20 00:50 — Nextstrain Bot
Changes are lingering on next.nextstrain.org.
Review the changes and promote (if appropriate) via the Heroku Dashboard.
These correspond to the following GitHub Actions workflow runs:
restored from remind-to-promote-state-hash-5605206714
stored to remind-to-promote-state-hash-5605716109
restored from remind-to-promote-state-hash-5607826181
stored to remind-to-promote-state-hash-5608320463
So why did it notify twice if the contents and hash hadn't changed? Because of the intervening runs meant the cached state did change. Notice that the second run (obviously in hindsight) doesn't restore from the state stored by the first run, but from the immediately prior run. That run is:
And therein lies the issue. The state is always chained from and compared to the immediately prior run. The double notification bug arises because we're overloading the state's non-existence to mean both "nothing to promote" and "something to promote, but not yet".
The text was updated successfully, but these errors were encountered:
The bot which reminds us to promote canary to production in a timely fashion has been sending us double notifications, some time apart.
These correspond to the following GitHub Actions workflow runs:
Both of those runs produced this state:
which hashes to:
The caching behaviour of the two runs was:
So why did it notify twice if the contents and hash hadn't changed? Because of the intervening runs meant the cached state did change. Notice that the second run (obviously in hindsight) doesn't restore from the state stored by the first run, but from the immediately prior run. That run is:
It produced an empty state file (because
No one's around; skipping check.
) hashing to:And therein lies the issue. The state is always chained from and compared to the immediately prior run. The double notification bug arises because we're overloading the state's non-existence to mean both "nothing to promote" and "something to promote, but not yet".
The text was updated successfully, but these errors were encountered: