Skip to content

fix: preserve deferred executor reload across noop - #337

Merged
giscebot merged 1 commit into
mainfrom
fix/autoupdate-preserve-pending-reload
Nov 2, 2026
Merged

giscebot merged 1 commit into
mainfrom
fix/autoupdate-preserve-pending-reload

Conversation

@giscebot

@giscebot giscebot commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • preserve a deferred executor restart when a later refresh sees the newly installed release as noop;
  • keep the original deferred service plan actionable while refreshing the installed version metadata;
  • cover the production sequence end to end: deferred update, drained job, noop refresh and completion restart.

Production incident

During the v0.88.0 rollout, webhook ingress and dashboard loaded the new version while the executor kept its pre-release process. The recorded completion state was later replaced by a noop plan with executor_reload_pending=false, so the completion pass no longer had an executor restart to apply.

The production executor has been restarted manually after confirming an empty queue. This PR prevents the pending restart from being lost on future releases.

Validation

  • regression confirmed RED before the implementation;
  • 36 passed in tests/test_autoupdate.py;
  • 694 passed in the full Python suite;
  • git diff --check clean.

Refs #299

TASK: TASK-85718

Co-authored-by: Eduard Carreras <ecarreras@gisce.net>
@giscebot
giscebot requested a review from ecarreras November 2, 2026 16:55
@giscebot
giscebot merged commit bb4a8eb into main Nov 2, 2026
3 checks passed
@giscebot
giscebot deleted the fix/autoupdate-preserve-pending-reload branch November 2, 2026 17:06
@pilipilisbot

Copy link
Copy Markdown
Collaborator

Post-merge sync: #337 is integrated as bb4a8eb73b22b1c6662a6f421227dadd07fbaf89. I checked the merged diff: the noop refresh retains the pending executor decision/service plan while updating installed-version metadata, and the regression covers deferred update → drained job → noop refresh → completion restart. Dashboard and Python 3.11/3.12 checks passed on the PR head.

There is no dedicated github-agent-bridge-pr-337 worktree to clean up. This confirms merge, not release/deployment: the #299 rollout checklist still needs its #337 item reconciled after deployment, and the seven-day observation epoch should start only from the verified final deployment timestamp. No production action was taken here.

@giscebot

giscebot commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator Author

Review follow-up: he revisat el commit ce4678f ja fusionat. No hi veig cap finding bloquejant: record_update_plan() conserva la decisió diferida i el service_plan només quan el refresh és noop i hi ha un reload de l’executor pendent, mentre actualitza la versió instal·lada.

Validació local: 36 passed a tests/test_autoupdate.py i git diff --check net. La suite completa local s’ha aturat al 72% per no deixar processos penjats; els checks CI de la PR (dashboard, Python 3.11 i 3.12) consten verds. Això valida el canvi de codi; el rollout i la nova finestra d’observació continuen sent passos operatius separats.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants