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
{{ message }}
Repository navigation
Flaky test: TestLinuxBindingConcurrentMarkerTransition — "binding file state changed before return" #833
So the trigger is not any recent commit — the test races against itself.
What the test asserts
Eight goroutines each open the binding storage and perform the same ReplaceExact("state", "pending" → "active") transition; the test requires all eight to return success (idempotent CAS: losers must observe the
winner's value and treat the transition as already done). The failure message
comes from the loser path — a worker saw the marker change under it in a
window where the implementation reports an error instead of idempotent
success.
The window is small (fails well under 1 in 5 runs on CI, -count=5 locally on
Linux was not attempted here — the test skips on other platforms), which is
what makes it a recurring red herring: it lands on whichever PR happens to be
in CI, and the PR author debugs their own diff first.
Why this deserves a fix rather than a retry loop
The test encodes a real contract: concurrent first-boot marker transitions
must converge without error, because two processes racing the same pending → active flip is exactly what happens when a supervisor restarts the
binary mid-transition. If ReplaceExact can report "state changed before
return" for a transition that in fact completed, the caller cannot distinguish
"someone else finished my work" from "my work was clobbered".
Happy to take a crack at the storage-side fix if useful — filing first since the
failure lands on unrelated PRs (found while working on #732).
Activity