Skip to content

test(update): Windows progress self-test no longer flakes on publish/hold timing - #90371

Merged
teknium1 merged 1 commit into
mainfrom
fix/windows-progress-selftest-race
Aug 20, 2026
Merged

test(update): Windows progress self-test no longer flakes on publish/hold timing#90371
teknium1 merged 1 commit into
mainfrom
fix/windows-progress-selftest-race

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

test_progress_advances_while_the_orchestrator_blocks no longer flakes — it raced its subject on BOTH edges within one hour of PR CI on #90358, failing two unrelated Windows runs in a row.

  • Run 1: sampled right after the shim URL printed, before the orchestrator published its stage → caught the page boot default ('Hermes will open once done.' != 'Testing quiet update').
  • Run 2 (rerun): with HOLD=4s on a slow runner, the second sample slid past the hold → caught the cleared terminal state ('' != 'Testing quiet update').

Changes

  • tests/test_desktop_update_windows_progress.py: wait (≤10s) for the published stage to actually land before starting the 1.5s stability window; raise HERMES_SELFTEST_HOLD_SECONDS from 4 to 10 so both samples land inside the hold. Same assertions, same contract — anchored to the event under test instead of wall-clock luck. No production code touched.

Validation

Evidence
Flake direction 1 run 96264743282 — boot default caught
Flake direction 2 run 96266489358 — cleared state caught
Test is windows_only verified on this PR's Windows CI job

Infographic

Race-free self-test

…tions seen in CI)

test_progress_advances_while_the_orchestrator_blocks raced its subject on
both edges within one hour of PR CI (#90358):

- Run 1: sampled right after the shim URL printed, before the orchestrator
  published its stage — caught the page boot default
  ('Hermes will open once done.' != 'Testing quiet update').
- Run 2 (rerun): with HOLD=4s on a slow runner, the second sample slid past
  the hold and caught the cleared terminal state ('' != 'Testing quiet
  update').

Fix: wait (<=10s) for the published stage to actually land before starting
the 1.5s stability window, and raise the hold to 10s so both samples land
inside it. Same assertions, same contract — just anchored to the event the
test is about instead of wall-clock luck.
@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

૮ >ﻌ< ა ci review

ran on e32d4f7 — test(update): deflake the Windows progress self-test (both r

⚠️ Warnings

OSV vulnerability scan · View job

7 known vulnerabilities found in pinned dependencies.

How to fix:

Review the findings in the Security tab. Update the affected dependencies if a patched version is available.


debug info

CI timings

CI timings · View report · View job

Wall time 4m46s vs 4m6s (+16.3%). 9 job(s) slower, 12 faster, 3 unchanged.

  • Python tests / Run tests slice 3/12: +46.0s
  • Python tests / Run tests slice 4/12: +18.0s
  • OS-specific tests / macOS-only tests: -15.0s
  • Python tests / Run tests slice 10/12: +13.0s
  • Python tests / Run tests slice 12/12: +11.0s

@alt-glitch alt-glitch added type/test Test coverage or test infrastructure platform/windows Native Windows-specific behavior or breakage area/install-update Installer, updater, packaging, wheels, doctor P3 Low — cosmetic, nice to have sweeper:risk-platform-windows Sweeper risk: may break or behave differently on native Windows labels Aug 20, 2026
@teknium1
teknium1 merged commit 6d1284a into main Aug 20, 2026
50 checks passed
@teknium1
teknium1 deleted the fix/windows-progress-selftest-race branch August 20, 2026 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/install-update Installer, updater, packaging, wheels, doctor P3 Low — cosmetic, nice to have platform/windows Native Windows-specific behavior or breakage sweeper:risk-platform-windows Sweeper risk: may break or behave differently on native Windows type/test Test coverage or test infrastructure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants