Commit 055bf53
fix(ci): destroy stdout/stderr pipes after SIGKILL on timeout
Ubuntu CI symptom: even SIGKILL on the parent shell didn't unblock the
`close` event — the test stayed pending past vitest's 5s ceiling.
Root cause (most likely): dash on Ubuntu spawns `sleep` and when we kill
dash, sleep gets reparented to init but its stdout/stderr fds were
inherited from dash, keeping them alive from Node's POV. So Node's
child.stdout/stderr never get EOF, and `close` event on the (already
dead) dash never fires.
Fix: explicitly destroy() both pipes after sending SIGKILL. That forces
'close' to fire immediately regardless of orphaned child state.
Verified locally on macOS bash; pushing to test Ubuntu dash.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent dd2c750 commit 055bf53
2 files changed
Lines changed: 9 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
126 | | - | |
| 126 | + | |
| 127 | + | |
127 | 128 | | |
| 129 | + | |
| 130 | + | |
128 | 131 | | |
129 | 132 | | |
130 | 133 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
65 | | - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
66 | 67 | | |
| 68 | + | |
| 69 | + | |
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
| |||
0 commit comments