What happens
The elm / schema-elm fixture jobs intermittently fail in the fixture-setup step, before any schema or JSON sample is tested. Setup runs rm -rf elm-stuff && elm make Warmup.elm, and the rm -rf races the Elm compiler's use of elm-stuff, deadlocking on file locks.
Evidence
Impact
Because the fixture matrix runs with fail-fast: true, a single Elm setup crash cancels every sibling language job in the same matrix and trips the test-complete gate. See #3066 for details.
Suggested solutions
- Make the warmup retry-safe: wrap the setup in a retry loop with backoff.
- Serialize Elm invocations so nothing else touches
elm-stuff while the compiler runs.
- Pre-build
elm-stuff into the runner image or cache it, avoiding the rm -rf + rebuild race entirely.
Interim policy
Per CLAUDE.md ("Known CI flakiness"), we accept this flake for now. When it happens we retry the failed jobs (gh run rerun <run-id> --failed); a failure here only counts as real if it reproduces across retries or the PR actually touches Elm.
What happens
The
elm/schema-elmfixture jobs intermittently fail in the fixture-setup step, before any schema or JSON sample is tested. Setup runsrm -rf elm-stuff && elm make Warmup.elm, and therm -rfraces the Elm compiler's use ofelm-stuff, deadlocking on file locks.Evidence
rm -rf elm-stuff && elm make Warmup.elmstep —elm-stuff/*.dat withBinaryFile: resource busy (file locked), with a thread blocked indefinitely in an MVar operation. The failure is in setup output, not in any test's round-trip comparison.Impact
Because the fixture matrix runs with
fail-fast: true, a single Elm setup crash cancels every sibling language job in the same matrix and trips thetest-completegate. See #3066 for details.Suggested solutions
elm-stuffwhile the compiler runs.elm-stuffinto the runner image or cache it, avoiding therm -rf+ rebuild race entirely.Interim policy
Per
CLAUDE.md("Known CI flakiness"), we accept this flake for now. When it happens we retry the failed jobs (gh run rerun <run-id> --failed); a failure here only counts as real if it reproduces across retries or the PR actually touches Elm.