From cef6206f116914d11b5094895346dda5baa2e114 Mon Sep 17 00:00:00 2001 From: Mark Probst Date: Mon, 20 Jul 2026 12:50:50 -0400 Subject: [PATCH] test(elm): retry elm make after clearing elm-stuff The Elm compiler's per-project cache locking is flaky under heavy parallel load ("elm-stuff/0.19.2/d.dat: withBinaryFile: resource busy (file is locked)", elm/compiler#2258, seen in CI run 29758296129). The canonical workaround is to delete elm-stuff and rebuild; do that automatically on the first compile failure. The retry rebuilds dependencies from the warmed shared ELM_HOME, so it only costs time when the flake actually strikes. Co-Authored-By: Claude Fable 5 --- test/languages.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/languages.ts b/test/languages.ts index 6bcfd43611..8bbf5d8580 100644 --- a/test/languages.ts +++ b/test/languages.ts @@ -761,7 +761,11 @@ export const ElmLanguage: Language = { // package cache when parallel compiles race on a cold cache (still // reproducible with elm 0.19.2). setupCommand: "rm -rf elm-stuff && elm make Warmup.elm --output=/dev/null", - compileCommand: "elm make Main.elm --output elm.js", + // The retry after clearing elm-stuff works around the compiler's flaky + // per-project cache locking ("d.dat: withBinaryFile: resource busy", + // elm/compiler#2258), which strikes under heavy parallel load. + compileCommand: + "elm make Main.elm --output elm.js || (rm -rf elm-stuff && elm make Main.elm --output elm.js)", runCommand(sample: string) { return `node ./runner.js "${sample}"`; },