Skip to content

Commit cdbd2a8

Browse files
committed
ci(s001): kill the Windows sidecar with taskkill; bash kill leaves it running
Run 34078281292 hung on Windows long past the 60 s bound I had just added, so the hang was not in my loop. `kill` from Git-bash does not stop a native Windows process: the backgrounded desktop_windows_x86_64.exe outlived the step and kept the job alive. Cancelled by hand, twice now on this same step. `taskkill /T /F` takes the wrapper and its BEAM together, which on Windows is also the only thing that clears finding F1's orphan. Linux and macOS are green in the same run, with the shell built, HTTP 200 and cold start measured. **Windows has still never been observed serving** — it is the one CI question this slice has not answered, and the next run answers it either way, because the loop above it is now bounded and prints serve.log on failure. mix gate exit=0. Signed-off-by: Ayla Croft <aylacroft@proton.me>
1 parent 8cfe36f commit cdbd2a8

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

‎.github/workflows/package.yml‎

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -229,12 +229,22 @@ jobs:
229229
echo "COLD_START_MS=$elapsed" | tee -a "$GITHUB_ENV"
230230
echo "### ${{ matrix.name }} — cold start to first HTTP 200: **${elapsed} ms**" >> "$GITHUB_STEP_SUMMARY"
231231
test "$code" = "200"
232-
CHILD=$(pgrep -P "$PID" 2>/dev/null || true)
233-
kill "$PID" || true
234-
# The wrapper does not forward termination to the BEAM it launched — finding F1,
235-
# re-measured at G4 as an orphan still serving 200 past 7.6 s. Kill the child
236-
# explicitly or the runner leaves it behind.
237-
[ -n "$CHILD" ] && kill "$CHILD" 2>/dev/null || true
232+
# Stopping it, and Windows needs its own verb. `kill` from Git-bash does not stop a
233+
# native Windows process, so the backgrounded .exe outlived the step and the job hung
234+
# long past the bounded loops above — run 34078281292, cancelled by hand. `taskkill
235+
# /T` takes the wrapper and its BEAM together, which on Windows is also the only
236+
# thing that clears finding F1's orphan.
237+
if [ "${{ runner.os }}" = "Windows" ]; then
238+
taskkill //PID "$PID" //T //F >/dev/null 2>&1 || true
239+
taskkill //IM desktop_windows_x86_64.exe //T //F >/dev/null 2>&1 || true
240+
else
241+
CHILD=$(pgrep -P "$PID" 2>/dev/null || true)
242+
kill "$PID" || true
243+
# The wrapper does not forward termination to the BEAM it launched — finding F1,
244+
# re-measured at G4 as an orphan still serving 200 past 7.6 s. Kill the child
245+
# explicitly or the runner leaves it behind.
246+
[ -n "$CHILD" ] && kill "$CHILD" 2>/dev/null || true
247+
fi
238248
239249
- uses: actions/upload-artifact@v4
240250
with:

0 commit comments

Comments
 (0)