Skip to content

Cycle-5: soak .exe resolution (root cause of both Windows runner soak reds) + preflight cleanup race - #1289

Merged
DeusData merged 2 commits into
mainfrom
feat/local-remote-parity
Jul 27, 2026
Merged

Cycle-5: soak .exe resolution (root cause of both Windows runner soak reds) + preflight cleanup race#1289
DeusData merged 2 commits into
mainfrom
feat/local-remote-parity

Conversation

@DeusData

Copy link
Copy Markdown
Owner

soak-legs now resolves the .exe whenever it exists: workflows pass suffix-less paths, msys executes them transparently, and soak-test keys its native-Windows cache-path/coproc gates off the literal suffix — suffix-less native binaries got POSIX cache paths (mis-rooted daemon logs, silent frontend death). Reproduced and red->green proven on the VM CLANG64 rig. Plus best-effort retry on the Windows version/security preflight cleanup traps (image-teardown busy race that failed a job whose work was green).

DeusData added 2 commits July 27, 2026 06:31
…ight dirs

The version preflight PASSED (both images printed their version) and
then the job died in the cleanup trap: Windows keeps the just-exited
image's file busy for ~100ms (section teardown / first-touch AV), so
'rm -rf' in the EXIT trap raced it — 'Device or resource busy', exit 1
on a job whose actual work was green (observed on windows-11-arm ui in
dry run 30232946513). Temp-dir cleanup on an ephemeral runner is
best-effort with one retry, never a gate.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
Both hosted-runner Windows soak legs failed at Phase 1/diagnostics
with an empty frontend stderr while the daemon's own log showed a
healthy diagnostics.start: the workflows pass the suffix-less binary
path, msys resolves it transparently (so the old 'append .exe only
when the plain name is not executable' branch never fired), and
soak-test keys BOTH native-Windows gates — the cygpath'd
CBM_CACHE_DIR and the coproc stdio branch — off the literal .exe
suffix. A suffix-less native binary therefore received a POSIX-form
cache path: daemon logs mis-rooted (diagnostics grep zero, arm64) and
the frontend's cache path handling died silently (x64 SIGPIPE at
first write).

Reproduced on the VM's CLANG64 environment with a suffix-less
invocation (same FAIL) and red->green proven: with the normalization
the identical invocation runs the full quick soak to PASSED.

Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
@DeusData
DeusData merged commit af3ffbd into main Jul 27, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant