From 005f7a2b1b195387325c66da4da6d4c48beb4ec6 Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Wed, 29 Jul 2026 05:11:27 +0000 Subject: [PATCH] Fail the Windows leg when the installer never exited The driver writes installer_exit=running when the installer outlived Stop-Tree and WaitForExit, and 'running' is not '0', so the landing assertion accepted it. A live installer writing into the venv while the probe reads it is not an interrupted install. Only a real integer exit code counts now, checked against 0, 143, 137, -1, running and the empty string. --- .github/workflows/interrupted-install-ci.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/interrupted-install-ci.yml b/.github/workflows/interrupted-install-ci.yml index 4567c13b22..0ea4c03ab7 100644 --- a/.github/workflows/interrupted-install-ci.yml +++ b/.github/workflows/interrupted-install-ci.yml @@ -281,9 +281,12 @@ jobs: # post-delay HasExited check and Stop-Tree, leaving reason=marker-hit over a # COMPLETED install that probes HEALTHY and skips the re-run assertion. # Stop-Process -Force is non-zero, so only a completed install reports 0. - if ($vals['installer_exit'] -eq '0') { - Write-Host '::error::installer exited 0 -- it COMPLETED inside the kill window, so' - Write-Host '::error::nothing was interrupted and this leg asserts nothing.' + # 'running' too, not just 0: the driver reports that when the installer outlived + # Stop-Tree and WaitForExit, and a live installer writing into the venv under the + # probe is not an interrupted install either. Only a real non-zero code counts. + if ($vals['installer_exit'] -eq '0' -or $vals['installer_exit'] -notmatch '^-?\d+$') { + Write-Host "::error::installer exit=$($vals['installer_exit']) -- it completed or never" + Write-Host '::error::died inside the kill window, so this leg asserts nothing.' Get-Content logs/install.log -Tail 30 -ErrorAction SilentlyContinue exit 1 }