fix(parallels): preserve npm update stream kill grace

This commit is contained in:
Vincent Koc
2026-06-20 12:15:16 +02:00
parent 66c62d52ad
commit a6e4afe0fa
2 changed files with 71 additions and 3 deletions

View File

@@ -1226,6 +1226,8 @@ export class NpmUpdateSmoke {
let timedOut = false;
let killTimer: NodeJS.Timeout | undefined;
let forceKillAt: number | undefined;
const timeoutKillGraceMs = freshLaneTimeoutKillGraceMs;
const signalChild = (signal: NodeJS.Signals): void => {
if (!child.pid) {
return;
@@ -1246,7 +1248,8 @@ export class NpmUpdateSmoke {
}
timedOut = true;
signalChild("SIGTERM");
killTimer = setTimeout(() => signalChild("SIGKILL"), 2_000);
forceKillAt = Date.now() + timeoutKillGraceMs;
killTimer = setTimeout(() => signalChild("SIGKILL"), timeoutKillGraceMs);
killTimer.unref();
};
if (ctx.signal.aborted) {
@@ -1273,8 +1276,10 @@ export class NpmUpdateSmoke {
clearTimeout(killTimer);
}
if (timedOut) {
signalChild("SIGKILL");
resolve(124);
void finishTimedOutLoggedProcessTree(child, {
forceKillAt,
timeoutKillGraceMs,
}).then(() => resolve(124), reject);
return;
}
resolve(code ?? (signal ? 128 : 1));