audit-tools 0.55.9 → 0.55.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit/cli/auditStep.d.ts +1 -1
- package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
- package/dist/audit/cli/functionalPreflight.d.ts +4 -4
- package/dist/audit/cli/sampleRunCommand.d.ts +1 -1
- package/dist/audit/cli/steps.d.ts +2 -2
- package/dist/audit/contracts/workerSchemas.d.ts +14 -14
- package/dist/audit/contracts/wrapperResponse.d.ts +8 -8
- package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
- package/dist/audit/types/auditState.d.ts +2 -2
- package/dist/audit/types/reviewPlanning.d.ts +2 -2
- package/dist/audit/types.d.ts +12 -12
- package/dist/remediate/intake.d.ts +2 -2
- package/dist/shared/tooling/allowlistedExec.d.ts +3 -0
- package/dist/shared/tooling/allowlistedExec.d.ts.map +1 -1
- package/dist/shared/tooling/allowlistedExec.js +54 -31
- package/dist/shared/tooling/allowlistedExec.js.map +1 -1
- package/dist/shared/tooling/exec.d.ts +4 -1
- package/dist/shared/tooling/exec.d.ts.map +1 -1
- package/dist/shared/tooling/exec.js +76 -71
- package/dist/shared/tooling/exec.js.map +1 -1
- package/dist/shared/tooling/ownedProcessLifecycle.d.ts +30 -0
- package/dist/shared/tooling/ownedProcessLifecycle.d.ts.map +1 -0
- package/dist/shared/tooling/ownedProcessLifecycle.js +99 -0
- package/dist/shared/tooling/ownedProcessLifecycle.js.map +1 -0
- package/dist/shared/tooling/windowsOwnedJob.d.ts +35 -0
- package/dist/shared/tooling/windowsOwnedJob.d.ts.map +1 -0
- package/dist/shared/tooling/windowsOwnedJob.js +145 -0
- package/dist/shared/tooling/windowsOwnedJob.js.map +1 -0
- package/package.json +2 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type OwnedProcessCleanup } from "./ownedProcessLifecycle.js";
|
|
1
2
|
/** Default per-anchor wall-clock budget; a slower command is killed and inconclusive. */
|
|
2
3
|
export declare const ALLOWLISTED_EXEC_TIMEOUT_MS = 60000;
|
|
3
4
|
/** Read-only git subcommands an anchor may run (no checkout/reset/clean/push/…). */
|
|
@@ -45,6 +46,8 @@ export interface AllowlistedExecOutcome {
|
|
|
45
46
|
* outcome that reached a real spawn attempt.
|
|
46
47
|
*/
|
|
47
48
|
refused?: boolean;
|
|
49
|
+
/** Bounded-failure cleanup observations; an unverified cleanup is never success. */
|
|
50
|
+
cleanup?: OwnedProcessCleanup;
|
|
48
51
|
}
|
|
49
52
|
export type AllowlistedExecRunner = (command: string[], cwd: string, timeoutMs: number) => Promise<AllowlistedExecOutcome>;
|
|
50
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowlistedExec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"allowlistedExec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAmD,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEvH,yFAAyF;AACzF,eAAO,MAAM,2BAA2B,QAAS,CAAC;AA6IlD,oFAAoF;AACpF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAUvD,CAAC;AAkBH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAG/C,CAAC;AAEH,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AA8DD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CASjE;AAED,iFAAiF;AACjF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,6BAA6B,EAAE,qBAkF3C,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// sites-pinned: tests/shared/allowlisted-exec.test.ts, tests/shared/allowlisted-exec-runner-internals.test.ts
|
|
1
2
|
/**
|
|
2
3
|
* Allowlisted read-only command runner + a DEFAULT-DENY per-executable flag
|
|
3
4
|
* allowlist — single source for both orchestrators (drift-plan E2; CRIT
|
|
@@ -28,12 +29,10 @@
|
|
|
28
29
|
* never the sole guarantee: correctness must not rest on every call site
|
|
29
30
|
* remembering to gate first.
|
|
30
31
|
*/
|
|
31
|
-
import { spawn } from "node:child_process";
|
|
32
32
|
import { resolveExecArgv, stripAuditToolsControlEnv } from "./exec.js";
|
|
33
|
+
import { beginOwnedProcessTermination, spawnOwnedProcess } from "./ownedProcessLifecycle.js";
|
|
33
34
|
/** Default per-anchor wall-clock budget; a slower command is killed and inconclusive. */
|
|
34
35
|
export const ALLOWLISTED_EXEC_TIMEOUT_MS = 60_000;
|
|
35
|
-
/** Grace before a timed-out child is escalated from SIGTERM to SIGKILL. */
|
|
36
|
-
const SIGKILL_GRACE_MS = 2_000;
|
|
37
36
|
/** Cap on captured combined output so a runaway command cannot exhaust memory. */
|
|
38
37
|
const MAX_CAPTURED_OUTPUT = 256 * 1024;
|
|
39
38
|
/**
|
|
@@ -324,13 +323,18 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
|
|
|
324
323
|
});
|
|
325
324
|
}
|
|
326
325
|
return new Promise((resolvePromise) => {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
cwd,
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
326
|
+
let owned;
|
|
327
|
+
try {
|
|
328
|
+
owned = spawnOwnedProcess(resolveExecArgv(command), { cwd, env: stripAuditToolsControlEnv(), deadlineAt: Date.now() + Math.max(1, Number.isFinite(timeoutMs) ? timeoutMs : 1) });
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
resolvePromise({ exit_code: null, timed_out: false, output: "", spawn_error: error instanceof Error ? error.message : String(error) });
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
const child = owned.child;
|
|
335
|
+
// This runner has always supplied EOF to the admitted read-only command.
|
|
336
|
+
child.stdin.on("error", () => { });
|
|
337
|
+
child.stdin.end();
|
|
334
338
|
let output = "";
|
|
335
339
|
// A chunk that arrives once the cap is already reached is genuinely
|
|
336
340
|
// DROPPED (never appended) — that is the only condition that makes the
|
|
@@ -339,7 +343,15 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
|
|
|
339
343
|
// still recorded in full (unchanged cap-application behavior); nothing was
|
|
340
344
|
// lost in that case, so `truncated` correctly stays unset.
|
|
341
345
|
let truncated = false;
|
|
346
|
+
let settled = false;
|
|
347
|
+
let stdioIncomplete = false;
|
|
348
|
+
let stdoutEnded = false;
|
|
349
|
+
let stderrEnded = false;
|
|
350
|
+
child.stdout.on("end", () => { stdoutEnded = true; });
|
|
351
|
+
child.stderr.on("end", () => { stderrEnded = true; });
|
|
342
352
|
const capture = (chunk) => {
|
|
353
|
+
if (settled)
|
|
354
|
+
return;
|
|
343
355
|
if (output.length < MAX_CAPTURED_OUTPUT) {
|
|
344
356
|
output += String(chunk);
|
|
345
357
|
}
|
|
@@ -350,31 +362,42 @@ export const runAllowlistedReadOnlyCommand = (command, cwd, timeoutMs) => {
|
|
|
350
362
|
child.stdout?.on("data", capture);
|
|
351
363
|
child.stderr?.on("data", capture);
|
|
352
364
|
let timedOut = false;
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
}, timeoutMs);
|
|
359
|
-
timer.unref?.();
|
|
360
|
-
child.on("error", (error) => {
|
|
365
|
+
let cancelTermination;
|
|
366
|
+
const finish = (code, spawnError) => {
|
|
367
|
+
if (settled)
|
|
368
|
+
return;
|
|
369
|
+
settled = true;
|
|
361
370
|
clearTimeout(timer);
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
371
|
+
cancelTermination?.();
|
|
372
|
+
const cleanup = timedOut ? owned.cleanup(stdioIncomplete) : undefined;
|
|
373
|
+
owned.release();
|
|
374
|
+
resolvePromise({ exit_code: code, timed_out: timedOut, output, ...(spawnError ? { spawn_error: spawnError } : {}), ...(truncated ? { truncated: true } : {}), ...(cleanup ? { cleanup } : {}) });
|
|
375
|
+
};
|
|
376
|
+
const beginTimeout = () => {
|
|
377
|
+
if (settled || timedOut)
|
|
378
|
+
return;
|
|
379
|
+
timedOut = true;
|
|
380
|
+
cancelTermination = beginOwnedProcessTermination(owned, () => { }, () => {
|
|
381
|
+
stdioIncomplete = !stdoutEnded || !stderrEnded;
|
|
382
|
+
child.stdout.destroy();
|
|
383
|
+
child.stderr.destroy();
|
|
384
|
+
child.stdin.destroy();
|
|
385
|
+
finish(owned.rootStatus());
|
|
368
386
|
});
|
|
387
|
+
if (settled)
|
|
388
|
+
cancelTermination();
|
|
389
|
+
};
|
|
390
|
+
const timer = setTimeout(beginTimeout, timeoutMs);
|
|
391
|
+
child.on("error", (error) => {
|
|
392
|
+
if (error.code === "ETIMEDOUT")
|
|
393
|
+
beginTimeout();
|
|
394
|
+
else if (!timedOut)
|
|
395
|
+
finish(null, error.message);
|
|
369
396
|
});
|
|
370
397
|
child.on("close", (code) => {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
timed_out: timedOut,
|
|
375
|
-
output,
|
|
376
|
-
...(truncated ? { truncated: true } : {}),
|
|
377
|
-
});
|
|
398
|
+
if (timedOut && !owned.cleanup(false).cleanup_verified)
|
|
399
|
+
return;
|
|
400
|
+
finish(owned.rootExited() ? owned.rootStatus() : code);
|
|
378
401
|
});
|
|
379
402
|
});
|
|
380
403
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowlistedExec.js","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"allowlistedExec.js","sourceRoot":"","sources":["../../../src/shared/tooling/allowlistedExec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { spawn, spawnSync, type StdioOptions } from "node:child_process";
|
|
2
|
+
import { type OwnedProcessCleanup } from "./ownedProcessLifecycle.js";
|
|
2
3
|
export { resolveExecutableFile, type ExecutableLookupOptions } from "./resolveExecutable.js";
|
|
3
4
|
export interface RunTrackedOptions {
|
|
4
5
|
cwd?: string;
|
|
@@ -47,6 +48,8 @@ export interface RunTrackedResult {
|
|
|
47
48
|
* ruled out.
|
|
48
49
|
*/
|
|
49
50
|
signal?: string | null;
|
|
51
|
+
/** Observed owned-job cleanup/capture state on a bounded failure. */
|
|
52
|
+
cleanup?: OwnedProcessCleanup;
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* Deadline for one fold-reachable tracked child. These spawns run inside the
|
|
@@ -99,7 +102,7 @@ export interface SpawnDeadlineMiss {
|
|
|
99
102
|
elapsed_ms: number;
|
|
100
103
|
/** Whether the child had already exited when the deadline fired. */
|
|
101
104
|
child_exited: boolean;
|
|
102
|
-
/** Whether
|
|
105
|
+
/** Whether owned cleanup remained unsettled at the TERM grace and escalation was requested. */
|
|
103
106
|
survived_grace: boolean;
|
|
104
107
|
}
|
|
105
108
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { spawn, spawnSync } from "node:child_process";
|
|
6
6
|
import { win32 } from "node:path";
|
|
7
7
|
import { StringDecoder } from "node:string_decoder";
|
|
8
|
+
import { beginOwnedProcessTermination, spawnOwnedProcess } from "./ownedProcessLifecycle.js";
|
|
8
9
|
export { resolveExecutableFile } from "./resolveExecutable.js";
|
|
9
10
|
const SHELL_SHIM_COMMANDS = new Set(["npm", "npx", "pnpm", "yarn"]);
|
|
10
11
|
/**
|
|
@@ -51,13 +52,6 @@ function windowsNativeCommand(command, systemRoot) {
|
|
|
51
52
|
const root = systemRoot ?? process.env.SystemRoot ?? "C:\\Windows";
|
|
52
53
|
return win32.join(root, relative);
|
|
53
54
|
}
|
|
54
|
-
/**
|
|
55
|
-
* How long {@link runTrackedAsync} waits after SIGTERM before escalating to an
|
|
56
|
-
* unignorable SIGKILL for a child it killed on its own deadline/overflow bound.
|
|
57
|
-
* Long enough for an ordinary child to flush and exit, short enough that a
|
|
58
|
-
* child which ignores SIGTERM cannot hang the awaiting caller.
|
|
59
|
-
*/
|
|
60
|
-
const KILL_ESCALATION_GRACE_MS = 2_000;
|
|
61
55
|
/**
|
|
62
56
|
* Deadline for one fold-reachable tracked child. These spawns run inside the
|
|
63
57
|
* artifact-tree lock's hold (or the remediation state lock's), always through
|
|
@@ -111,10 +105,10 @@ export function resolveSpawnDeadline(deadline, ...caps) {
|
|
|
111
105
|
*/
|
|
112
106
|
export function describeDeadlineMiss(argv, deadlineMs, miss) {
|
|
113
107
|
const fate = miss.survived_grace
|
|
114
|
-
? "child
|
|
108
|
+
? `${miss.child_exited ? "child exit was already observed; " : ""}owned cleanup did not settle within the SIGTERM grace; SIGKILL requested`
|
|
115
109
|
: miss.child_exited
|
|
116
|
-
? "child had already exited when the deadline fired"
|
|
117
|
-
: "child
|
|
110
|
+
? "child had already exited when the deadline fired; owned cleanup requested (SIGTERM)"
|
|
111
|
+
: "child exit not yet observed; owned cleanup requested (SIGTERM)";
|
|
118
112
|
return (`child exceeded the ${String(deadlineMs)}ms deadline after ${String(miss.elapsed_ms)}ms: ` +
|
|
119
113
|
`${argv.join(" ")} — ${fate}`);
|
|
120
114
|
}
|
|
@@ -508,13 +502,19 @@ export async function runTrackedAsync(argv, options = {}) {
|
|
|
508
502
|
});
|
|
509
503
|
const start = Date.now();
|
|
510
504
|
return await new Promise((resolve) => {
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
505
|
+
let owned;
|
|
506
|
+
try {
|
|
507
|
+
owned = spawnOwnedProcess(resolved, {
|
|
508
|
+
cwd: options.cwd,
|
|
509
|
+
env: stripAuditToolsControlEnv(options.env),
|
|
510
|
+
...(options.timeout !== undefined && options.timeout > 0 ? { deadlineAt: start + options.timeout } : {}),
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
catch (error) {
|
|
514
|
+
resolve({ status: null, stdout: "", stderr: "", argv: resolved, cwd: options.cwd, duration_ms: Date.now() - start, error: error instanceof Error ? error : new Error(String(error)), signal: null });
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
const child = owned.child;
|
|
518
518
|
let stdout = "";
|
|
519
519
|
let stderr = "";
|
|
520
520
|
// Pipe data events can split a UTF-8 character. Keep decoding state separate
|
|
@@ -545,40 +545,49 @@ export async function runTrackedAsync(argv, options = {}) {
|
|
|
545
545
|
// which corrupts the caller where a refusal would have degraded cleanly.
|
|
546
546
|
const MAX_CAPTURE = Math.max(10 * 1024 * 1024, options.maxBuffer ?? 0);
|
|
547
547
|
const overflowLimit = options.maxBuffer;
|
|
548
|
-
let
|
|
548
|
+
let cancelTermination;
|
|
549
|
+
let stdoutEnded = false;
|
|
550
|
+
let stderrEnded = false;
|
|
551
|
+
let stdioIncomplete = false;
|
|
552
|
+
child.stdout.on("end", () => { stdoutEnded = true; });
|
|
553
|
+
child.stderr.on("end", () => { stderrEnded = true; });
|
|
549
554
|
/**
|
|
550
555
|
* Terminate the child for a bound this runner owns, and make the
|
|
551
556
|
* termination ACTUALLY terminal.
|
|
552
557
|
*
|
|
553
|
-
*
|
|
554
|
-
*
|
|
555
|
-
*
|
|
556
|
-
* name only (`spawnSync`'s `timeout` had no such hole — it kills from the
|
|
557
|
-
* runtime). So the SIGTERM is followed by an unignorable SIGKILL after a
|
|
558
|
-
* short grace period. The timer is `unref`d so a settled call never holds
|
|
559
|
-
* the event loop open.
|
|
558
|
+
* The owner can terminate an ordinary descendant even after its root exits.
|
|
559
|
+
* Neither a failed signal nor an escaped descendant may keep capture open
|
|
560
|
+
* forever. Keep both cleanup timers referenced until exactly-once settlement.
|
|
560
561
|
*/
|
|
561
562
|
const killForBound = () => {
|
|
562
|
-
|
|
563
|
-
if (killTimer)
|
|
563
|
+
if (cancelTermination)
|
|
564
564
|
return;
|
|
565
|
-
|
|
565
|
+
cancelTermination = beginOwnedProcessTermination(owned, () => {
|
|
566
566
|
if (!settled) {
|
|
567
|
-
//
|
|
568
|
-
// which "did anything survive the kill?" is answerable.
|
|
567
|
+
// Open pipes do not establish that the direct child ignored TERM.
|
|
569
568
|
if (deadlineMiss)
|
|
570
569
|
deadlineMiss.survived_grace = true;
|
|
571
|
-
child.kill("SIGKILL");
|
|
572
570
|
}
|
|
573
|
-
},
|
|
574
|
-
|
|
571
|
+
}, () => {
|
|
572
|
+
if (settled)
|
|
573
|
+
return;
|
|
574
|
+
stdioIncomplete = !stdoutEnded || !stderrEnded;
|
|
575
|
+
child.stdout.destroy();
|
|
576
|
+
child.stderr.destroy();
|
|
577
|
+
child.stdin.destroy();
|
|
578
|
+
finishResult(owned.rootStatus(), owned.rootSignal());
|
|
579
|
+
});
|
|
580
|
+
if (settled)
|
|
581
|
+
cancelTermination();
|
|
575
582
|
};
|
|
576
583
|
const timer = options.timeout !== undefined && options.timeout > 0
|
|
577
584
|
? setTimeout(() => {
|
|
585
|
+
if (killedBy !== null || settled)
|
|
586
|
+
return;
|
|
578
587
|
killedBy = "timeout";
|
|
579
588
|
deadlineMiss = {
|
|
580
589
|
elapsed_ms: Date.now() - start,
|
|
581
|
-
child_exited:
|
|
590
|
+
child_exited: owned.rootExited(),
|
|
582
591
|
survived_grace: false,
|
|
583
592
|
};
|
|
584
593
|
killForBound();
|
|
@@ -590,14 +599,29 @@ export async function runTrackedAsync(argv, options = {}) {
|
|
|
590
599
|
settled = true;
|
|
591
600
|
if (timer)
|
|
592
601
|
clearTimeout(timer);
|
|
593
|
-
|
|
594
|
-
|
|
602
|
+
cancelTermination?.();
|
|
603
|
+
owned.release();
|
|
595
604
|
// Flush only at terminal settlement (including spawn errors), after the
|
|
596
605
|
// settled guard. Uncaptured chunks must never complete a pending sequence.
|
|
597
606
|
result.stdout += stdoutDecoder?.end() ?? "";
|
|
598
607
|
result.stderr += stderrDecoder?.end() ?? "";
|
|
599
608
|
resolve(result);
|
|
600
609
|
};
|
|
610
|
+
const finishResult = (code, signal, spawnError) => {
|
|
611
|
+
const cleanup = owned.cleanup(stdioIncomplete);
|
|
612
|
+
let error = spawnError;
|
|
613
|
+
if (killedBy !== null) {
|
|
614
|
+
const bound = new Error((killedBy === "timeout"
|
|
615
|
+
? describeDeadlineMiss(resolved, options.timeout, deadlineMiss ?? { elapsed_ms: Date.now() - start, child_exited: owned.rootExited(), survived_grace: false })
|
|
616
|
+
: `child exceeded the ${String(overflowLimit)}-byte output bound`) +
|
|
617
|
+
`; owned ${cleanup.scope} cleanup ${cleanup.cleanup_verified ? "verified" : "unverified"}${cleanup.stdio_incomplete ? "; stdio incomplete" : ""}`);
|
|
618
|
+
bound.code = killedBy === "timeout" ? "ETIMEDOUT" : "ENOBUFS";
|
|
619
|
+
error = bound;
|
|
620
|
+
}
|
|
621
|
+
else if (!error && signal !== null)
|
|
622
|
+
error = new Error(`child terminated by signal ${signal}`);
|
|
623
|
+
finish({ status: code, stdout, stderr, argv: resolved, cwd: options.cwd, duration_ms: Date.now() - start, ...(error ? { error } : {}), signal, ...(killedBy !== null ? { cleanup } : {}) });
|
|
624
|
+
};
|
|
601
625
|
/**
|
|
602
626
|
* Accumulate one chunk and enforce the overflow bound.
|
|
603
627
|
*
|
|
@@ -616,6 +640,8 @@ export async function runTrackedAsync(argv, options = {}) {
|
|
|
616
640
|
* truncate where the contract says it refuses.
|
|
617
641
|
*/
|
|
618
642
|
const capture = (chunk, decoder, append, seen, kept) => {
|
|
643
|
+
if (settled)
|
|
644
|
+
return;
|
|
619
645
|
// Whole-chunk admission uses emitted UTF-16 length, not raw bytes. UTF-8
|
|
620
646
|
// can hold at most three pending bytes, so corrected decoding can admit a
|
|
621
647
|
// chunk the old replacement-character decoding discarded. An admitted
|
|
@@ -658,43 +684,22 @@ export async function runTrackedAsync(argv, options = {}) {
|
|
|
658
684
|
child.stdin?.write(options.input);
|
|
659
685
|
child.stdin?.end();
|
|
660
686
|
child.on("error", (error) => {
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
});
|
|
687
|
+
if (killedBy !== null)
|
|
688
|
+
return;
|
|
689
|
+
if (error.code === "ETIMEDOUT") {
|
|
690
|
+
killedBy = "timeout";
|
|
691
|
+
deadlineMiss = { elapsed_ms: Date.now() - start, child_exited: owned.rootExited(), survived_grace: false };
|
|
692
|
+
killForBound();
|
|
693
|
+
}
|
|
694
|
+
else
|
|
695
|
+
finishResult(null, null, error);
|
|
671
696
|
});
|
|
672
697
|
child.on("close", (code, signal) => {
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
child_exited: code !== null,
|
|
679
|
-
survived_grace: false,
|
|
680
|
-
})
|
|
681
|
-
: `child exceeded the ${String(overflowLimit)}-byte output bound`);
|
|
682
|
-
bound.code = killedBy === "timeout" ? "ETIMEDOUT" : "ENOBUFS";
|
|
683
|
-
error = bound;
|
|
684
|
-
}
|
|
685
|
-
else if (signal !== null && signal !== undefined) {
|
|
686
|
-
error = new Error(`child terminated by signal ${signal}`);
|
|
687
|
-
}
|
|
688
|
-
finish({
|
|
689
|
-
status: code,
|
|
690
|
-
stdout,
|
|
691
|
-
stderr,
|
|
692
|
-
argv: resolved,
|
|
693
|
-
cwd: options.cwd,
|
|
694
|
-
duration_ms: Date.now() - start,
|
|
695
|
-
...(error ? { error } : {}),
|
|
696
|
-
signal: signal ?? null,
|
|
697
|
-
});
|
|
698
|
+
// Capture closure says nothing about descendants which closed their own
|
|
699
|
+
// writers. Do not cancel the remaining owned-group escalation for them.
|
|
700
|
+
if (killedBy !== null && !owned.cleanup(false).cleanup_verified)
|
|
701
|
+
return;
|
|
702
|
+
finishResult(owned.rootExited() ? owned.rootStatus() : code, owned.rootExited() ? owned.rootSignal() : signal ?? null);
|
|
698
703
|
});
|
|
699
704
|
});
|
|
700
705
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"exec.js","sourceRoot":"","sources":["../../../src/shared/tooling/exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type ChildProcessWithoutNullStreams } from "node:child_process";
|
|
2
|
+
export interface OwnedProcessCleanup {
|
|
3
|
+
scope: "process_group" | "windows_job";
|
|
4
|
+
root_exit_observed: boolean;
|
|
5
|
+
stdio_incomplete: boolean;
|
|
6
|
+
cleanup_verified: boolean;
|
|
7
|
+
termination_error?: string;
|
|
8
|
+
}
|
|
9
|
+
/** One bound's TERM grace plus a finite hard-kill/capture-drain window. */
|
|
10
|
+
export declare const OWNED_PROCESS_DRAIN_GRACE_MS = 1000;
|
|
11
|
+
export declare const OWNED_PROCESS_TERM_GRACE_MS = 2000;
|
|
12
|
+
/** Shared referenced cleanup clock; callers retain their own error/capture contract. */
|
|
13
|
+
export declare function beginOwnedProcessTermination(owned: {
|
|
14
|
+
terminate(signal: NodeJS.Signals): void;
|
|
15
|
+
}, onEscalate: () => void, onDrainLimit: () => void): () => void;
|
|
16
|
+
/** Ordinary descendant ownership; neither process groups nor Jobs are a sandbox. */
|
|
17
|
+
export declare function spawnOwnedProcess(argv: string[], options: {
|
|
18
|
+
cwd?: string;
|
|
19
|
+
env: NodeJS.ProcessEnv;
|
|
20
|
+
deadlineAt?: number;
|
|
21
|
+
}): {
|
|
22
|
+
child: ChildProcessWithoutNullStreams;
|
|
23
|
+
terminate: (signal: NodeJS.Signals) => void;
|
|
24
|
+
cleanup: (stdioIncomplete: boolean) => OwnedProcessCleanup;
|
|
25
|
+
release: () => void;
|
|
26
|
+
rootExited: () => boolean;
|
|
27
|
+
rootStatus: () => number | null;
|
|
28
|
+
rootSignal: () => string | null;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=ownedProcessLifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ownedProcessLifecycle.d.ts","sourceRoot":"","sources":["../../../src/shared/tooling/ownedProcessLifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAIhF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,eAAe,GAAG,aAAa,CAAC;IACvC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,OAAQ,CAAC;AAClD,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAEjD,wFAAwF;AACxF,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE;IAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAA;CAAE,EAClD,UAAU,EAAE,MAAM,IAAI,EACtB,YAAY,EAAE,MAAM,IAAI,GACvB,MAAM,IAAI,CAKZ;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE;;wBA+B3C,MAAM,CAAC,OAAO,KAAG,IAAI;+BAYd,OAAO,KAAG,mBAAmB;mBAM3C,IAAI;;;;EAOzB"}
|