Skip to content

test: stabilize background wait synchronization - #1325

Merged
wesm merged 2 commits into
mainfrom
fix/race-ci-cooldown-signal
Aug 2, 2026
Merged

test: stabilize background wait synchronization#1325
wesm merged 2 commits into
mainfrom
fix/race-ci-cooldown-signal

Conversation

@mariusvniekerk

@mariusvniekerk mariusvniekerk commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

Two background timing tests depended on receiver or scheduler ordering and could exercise the wrong state under differently scheduled CI runners.

The unwatched poll cooldown test now retains its one-shot completion notification so a completed reconcile pass cannot become a timeout. The daemon replacement startup-wait test now waits until ensureBackgroundServe enters the startup wait before publishing the incompatible runtime, ensuring it exercises replacement rather than a fresh launch.

Both changes are test-only; production polling and daemon lifecycle behavior are unchanged. The race/non-race job split already exists on main via #1323.

@roborev-ci

roborev-ci Bot commented Aug 1, 2026

Copy link
Copy Markdown

roborev: Combined Review (92a4709)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 33s

@wesm

wesm commented Aug 2, 2026

Copy link
Copy Markdown
Member

looking

mariusvniekerk and others added 2 commits August 1, 2026 19:09
The polling cooldown test used a best-effort notification to report that its first reconcile pass had returned. Under race instrumentation, the worker could send before the test began receiving, drop the signal, and turn a completed pass into a two-second timeout. Retaining the one-shot notification makes the existing cooldown assertions deterministic without changing production scheduling behavior.

Co-authored-by: Marius van Niekerk <marius.v.niekerk@gmail.com>
Signed-off-by: Marius van Niekerk <marius.v.niekerk@gmail.com>
The Windows job showed the fixed delay could let background startup race ahead before the incompatible runtime was published, exercising a fresh launch instead of the replacement branch. Gate publication on entry into the startup wait so the test deterministically observes and replaces the runtime it is meant to cover.
@wesm
wesm force-pushed the fix/race-ci-cooldown-signal branch from 92a4709 to c833d1c Compare August 2, 2026 00:19
@wesm wesm changed the title test: retain unwatched poll completion signal test: stabilize background wait synchronization Aug 2, 2026
@roborev-ci

roborev-ci Bot commented Aug 2, 2026

Copy link
Copy Markdown

roborev: Combined Review (c833d1c)

No issues found.


Reviewers: 2 done | Synthesis: codex | Total: 1m15s

@wesm
wesm merged commit eabb9be into main Aug 2, 2026
20 checks passed
@wesm
wesm deleted the fix/race-ci-cooldown-signal branch August 2, 2026 00:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants