Repository navigation
Conversation
PR #106702 — fix(update): soft-fail Windows gateway resume on already-up-to-date pathVerdict: Small, well-motivated robustness fix mirroring the pull path. Non-blocking notes only. Summary: Findings (all Non-blocking):
Tests: New |
|
Path C recheck of the Enough1122 AI review (all Non-blocking; no CHANGES_REQUESTED, no review threads). Agreed — no code change:
Focused suite: |
|
Ack — resume-once semantics, fail-open bare except, and None-safe token path accepted as designed; no-code-change agreed. Closed. |
|
Path C recheck after Enough1122 Ack (“no-code-change agreed. Closed.”). No new actionable review: still no review threads, no CHANGES_REQUESTED, no test failures. Fork CI check-suites remain Independent delta vs current
Focused suite: |
58e76a8 to
0f5c801
Compare
|
@Enough1122 Following your review, I rebuilt this PR on current main in 8596e62. The earlier already-up-to-date call site is no longer the live completion path. The remaining root cause was that |
4df1fe5 to
8596e62
Compare
|
Closing this older Windows-updater recovery patch to avoid maintaining a second, incompatible recovery policy. On current This is a maintenance decision, not a claim that every Windows updater failure in #106692 has been solved. Any remaining regression should be reproduced against the current completion/recovery path and covered in that architecture, rather than by porting the stale token mutation. Thanks to the earlier reviewers and contributors. |
What does this PR do?
Fixes #106692. When Windows gateway relaunch fails liveness verification during fresh-checkout update completion, record the gateway restart as incomplete and fail the update instead of reporting the fleet healthy. The failed recovery attempt now disarms its
resume_neededtoken, so the completionfinallypath and parent atexit fallback do not replay the same recovery attempt.Related Issue
Fixes #106692
Type of Change
Changes Made
hermes_cli/update_cmd_windows.py— preserve the incomplete restart outcome while disarming a failed Windows resume token.tests/hermes_cli/test_windows_update_restart_reconciliation.py— coverRuntimeError, no duplicate retry, andBaseExceptionpropagation.tests/hermes_cli/test_update_completion_process.py— exercise the fresh-checkout completion process path.How to Test
scripts/run_tests.sh tests/hermes_cli/test_windows_update_restart_reconciliation.py -q— 4 passedscripts/run_tests.sh tests/hermes_cli/test_update_completion_process.py -k completion_records_a_failed_windows_resume_without_replaying_it -vv— 1 passedscripts/run_tests.sh tests/hermes_cli/test_old_updater_takeover.py tests/hermes_cli/test_update_zip_completion.py -q— 35 and 23 passedEvidence
finallyand atexit paths from retrying it.Checklist
Code
Documentation & Housekeeping
cli-config.yaml.example: N/ACONTRIBUTING.mdorAGENTS.md: N/A