@cleocode/nexus 2026.9.12 → 2026.9.14
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/src/pipeline/filesystem-walker.d.ts +8 -0
- package/dist/src/pipeline/filesystem-walker.d.ts.map +1 -1
- package/dist/src/pipeline/filesystem-walker.js +94 -15
- package/dist/src/pipeline/filesystem-walker.js.map +1 -1
- package/dist/src/pipeline/workers/worker-pool.d.ts +4 -0
- package/dist/src/pipeline/workers/worker-pool.d.ts.map +1 -1
- package/dist/src/pipeline/workers/worker-pool.js +104 -11
- package/dist/src/pipeline/workers/worker-pool.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -40,6 +40,14 @@ export interface ScannedFile {
|
|
|
40
40
|
*/
|
|
41
41
|
language: string | null;
|
|
42
42
|
}
|
|
43
|
+
/** Floor for one ignore-assessment batch, before the per-path allowance. */
|
|
44
|
+
export declare const GIT_IGNORE_BASE_TIMEOUT_MS = 10000;
|
|
45
|
+
/** Added per path in the batch, so the budget scales with the work asked of git. */
|
|
46
|
+
export declare const GIT_IGNORE_PER_PATH_TIMEOUT_MS = 40;
|
|
47
|
+
/** Budget for the one-shot `rev-parse` ownership probe. */
|
|
48
|
+
export declare const GIT_PROBE_TIMEOUT_MS = 10000;
|
|
49
|
+
/** Operator override for the ignore-assessment budget, in milliseconds. */
|
|
50
|
+
export declare const GIT_IGNORE_TIMEOUT_ENV = "CLEO_NEXUS_GIT_TIMEOUT_MS";
|
|
43
51
|
/**
|
|
44
52
|
* Walk the repository directory tree and return a list of scanned files.
|
|
45
53
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-walker.d.ts","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAuDhE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"filesystem-walker.d.ts","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAuDhE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA0BD,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAK3C,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAoHlE;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EACrD,oBAAoB,GAAE,SAAS,MAAM,EAAO,GAC3C,OAAO,CAAC,WAAW,EAAE,CAAC,CAuKxB"}
|
|
@@ -90,31 +90,100 @@ async function readIgnorePatterns(ignorePath) {
|
|
|
90
90
|
throw error;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
/**
|
|
93
|
+
/** Paths handed to one `git check-ignore` invocation. */
|
|
94
|
+
const GIT_IGNORE_BATCH_SIZE = 256;
|
|
95
|
+
/** Floor for one ignore-assessment batch, before the per-path allowance. */
|
|
96
|
+
export const GIT_IGNORE_BASE_TIMEOUT_MS = 10_000;
|
|
97
|
+
/** Added per path in the batch, so the budget scales with the work asked of git. */
|
|
98
|
+
export const GIT_IGNORE_PER_PATH_TIMEOUT_MS = 40;
|
|
99
|
+
/** Budget for the one-shot `rev-parse` ownership probe. */
|
|
100
|
+
export const GIT_PROBE_TIMEOUT_MS = 10_000;
|
|
101
|
+
/** Multiplier applied to a batch's budget on its single retry. */
|
|
102
|
+
const GIT_IGNORE_RETRY_FACTOR = 4;
|
|
103
|
+
/** Operator override for the ignore-assessment budget, in milliseconds. */
|
|
104
|
+
export const GIT_IGNORE_TIMEOUT_ENV = 'CLEO_NEXUS_GIT_TIMEOUT_MS';
|
|
105
|
+
/**
|
|
106
|
+
* Milliseconds allowed for one ignore-assessment batch.
|
|
107
|
+
*
|
|
108
|
+
* Scales with batch size rather than standing at a constant, because the work
|
|
109
|
+
* git is asked to do scales with it and the filesystem underneath may be far
|
|
110
|
+
* slower than the one the constant was written on.
|
|
111
|
+
*
|
|
112
|
+
* @param batchSize - Paths in this invocation.
|
|
113
|
+
* @param env - Environment to read the operator override from.
|
|
114
|
+
* @returns The budget in milliseconds.
|
|
115
|
+
*/
|
|
116
|
+
function gitIgnoreTimeoutMs(batchSize, env = process.env) {
|
|
117
|
+
const override = Number.parseInt(env[GIT_IGNORE_TIMEOUT_ENV] ?? '', 10);
|
|
118
|
+
if (Number.isFinite(override) && override > 0)
|
|
119
|
+
return override;
|
|
120
|
+
return GIT_IGNORE_BASE_TIMEOUT_MS + batchSize * GIT_IGNORE_PER_PATH_TIMEOUT_MS;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Ask Git itself to apply repository, info/exclude and configured global excludes.
|
|
124
|
+
*
|
|
125
|
+
* ## Why the budget is not a constant (T12312)
|
|
126
|
+
*
|
|
127
|
+
* This used to allow `git rev-parse` 1 s and each `git check-ignore` batch 2 s,
|
|
128
|
+
* and to `throw result.error` verbatim on an overrun. Measured 2026-09-23 on a
|
|
129
|
+
* fuseblk mount 23–49× slower than local disk, warm cache, idle machine:
|
|
130
|
+
* rev-parse 152/152/188 ms, and check-ignore over 256 paths 797/974/**1701** ms
|
|
131
|
+
* — one run at 85 % of its budget, a 2.1× spread between runs. A repository of
|
|
132
|
+
* 9 141 tracked files is 36 batches, so that budget was rolled 36 times per
|
|
133
|
+
* `nexus analyze` and one slow roll killed the entire index rebuild with the
|
|
134
|
+
* bare Node string `spawnSync git ETIMEDOUT`: no invocation named, no budget
|
|
135
|
+
* quoted, no remedy. Intermittent by construction, which is why it reproduced
|
|
136
|
+
* for one agent and not the next.
|
|
137
|
+
*
|
|
138
|
+
* The budget now scales with the batch, a transient overrun is retried once
|
|
139
|
+
* with a larger one, and a genuine timeout says what it was doing and how to
|
|
140
|
+
* raise the ceiling. Being ignored is not something git can be asked about
|
|
141
|
+
* approximately, so an exhausted retry still fails the scan — loudly, rather
|
|
142
|
+
* than by silently indexing a vendored tree.
|
|
143
|
+
*
|
|
144
|
+
* @param repoPath - Repository to assess; never inferred from cwd.
|
|
145
|
+
* @param paths - Repo-relative paths to classify.
|
|
146
|
+
* @returns The subset git considers ignored.
|
|
147
|
+
*/
|
|
94
148
|
function gitExcludedPaths(repoPath, paths) {
|
|
95
149
|
const probe = spawnSync('git', ['rev-parse', '--is-inside-work-tree'], {
|
|
96
150
|
cwd: repoPath,
|
|
97
151
|
encoding: 'utf8',
|
|
98
|
-
timeout:
|
|
152
|
+
timeout: GIT_PROBE_TIMEOUT_MS,
|
|
99
153
|
});
|
|
100
|
-
if (probe.error)
|
|
101
|
-
throw probe
|
|
154
|
+
if (probe.error) {
|
|
155
|
+
throw new Error(`Git ownership probe (git rev-parse --is-inside-work-tree) in ${repoPath} did not complete ` +
|
|
156
|
+
`within ${GIT_PROBE_TIMEOUT_MS}ms: ${probe.error.message}. ` +
|
|
157
|
+
`Raise the ignore-assessment budget with ${GIT_IGNORE_TIMEOUT_ENV}=<ms>, or run the scan ` +
|
|
158
|
+
`from a faster filesystem — a network or FUSE mount can exceed this on a loaded machine.`, { cause: probe.error });
|
|
159
|
+
}
|
|
102
160
|
if (probe.status === 128 && !existsSync(path.join(repoPath, '.git')))
|
|
103
161
|
return new Set();
|
|
104
162
|
if (probe.status !== 0)
|
|
105
163
|
throw new Error(`Git source ownership check failed: ${probe.stderr.trim()}`);
|
|
106
164
|
const excluded = new Set();
|
|
107
|
-
for (let offset = 0; offset < paths.length; offset +=
|
|
108
|
-
const batch = paths.slice(offset, offset +
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
165
|
+
for (let offset = 0; offset < paths.length; offset += GIT_IGNORE_BATCH_SIZE) {
|
|
166
|
+
const batch = paths.slice(offset, offset + GIT_IGNORE_BATCH_SIZE);
|
|
167
|
+
const budget = gitIgnoreTimeoutMs(batch.length);
|
|
168
|
+
const batchNumber = Math.floor(offset / GIT_IGNORE_BATCH_SIZE) + 1;
|
|
169
|
+
const batchCount = Math.ceil(paths.length / GIT_IGNORE_BATCH_SIZE);
|
|
170
|
+
// One retry with a larger budget: an overrun under momentary load is not
|
|
171
|
+
// evidence that the budget is wrong, and abandoning a whole index rebuild
|
|
172
|
+
// on a single slow roll is the failure this replaces.
|
|
173
|
+
let result = runGitCheckIgnore(repoPath, batch, budget);
|
|
174
|
+
let elapsedBudget = budget;
|
|
175
|
+
if (result.error) {
|
|
176
|
+
elapsedBudget = budget * GIT_IGNORE_RETRY_FACTOR;
|
|
177
|
+
result = runGitCheckIgnore(repoPath, batch, elapsedBudget);
|
|
178
|
+
}
|
|
179
|
+
if (result.error) {
|
|
180
|
+
throw new Error(`Git ignore assessment (git check-ignore) timed out on batch ${batchNumber} of ` +
|
|
181
|
+
`${batchCount} (${batch.length} paths) in ${repoPath}: allowed ${budget}ms, then ` +
|
|
182
|
+
`${elapsedBudget}ms on retry, and neither completed (${result.error.message}). ` +
|
|
183
|
+
`Raise the per-batch budget with ${GIT_IGNORE_TIMEOUT_ENV}=<ms>. The scan is abandoned ` +
|
|
184
|
+
`rather than continued, because a batch git could not classify would otherwise be ` +
|
|
185
|
+
`indexed as if nothing in it were ignored.`, { cause: result.error });
|
|
186
|
+
}
|
|
118
187
|
// Git documents exit 1 for no ignored paths; other failures invalidate the scan.
|
|
119
188
|
if (result.status !== 0 && result.status !== 1)
|
|
120
189
|
throw new Error(`Git ignore assessment failed: ${result.stderr.trim()}`);
|
|
@@ -124,6 +193,16 @@ function gitExcludedPaths(repoPath, paths) {
|
|
|
124
193
|
}
|
|
125
194
|
return excluded;
|
|
126
195
|
}
|
|
196
|
+
/** One `git check-ignore` invocation over a batch, under an explicit budget. */
|
|
197
|
+
function runGitCheckIgnore(repoPath, batch, timeout) {
|
|
198
|
+
return spawnSync('git', ['check-ignore', '--no-index', '-z', '--stdin'], {
|
|
199
|
+
cwd: repoPath,
|
|
200
|
+
encoding: 'utf8',
|
|
201
|
+
input: `${batch.join('\0')}\0`,
|
|
202
|
+
timeout,
|
|
203
|
+
maxBuffer: 4 * 1024 * 1024,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
127
206
|
// ---------------------------------------------------------------------------
|
|
128
207
|
// Core walker
|
|
129
208
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-walker.js","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem-walker.js","sourceRoot":"","sources":["../../../src/pipeline/filesystem-walker.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,10 @@ export interface WorkerPool {
|
|
|
37
37
|
/** Number of workers in the pool. */
|
|
38
38
|
readonly size: number;
|
|
39
39
|
}
|
|
40
|
+
/** Operator override for the per-file parse budget, in milliseconds. */
|
|
41
|
+
export declare const PARSE_TIMEOUT_ENV = "CLEO_NEXUS_PARSE_TIMEOUT_MS";
|
|
42
|
+
/** Operator override for each parse worker's V8 old-space cap, in MiB. */
|
|
43
|
+
export declare const WORKER_HEAP_ENV = "CLEO_NEXUS_WORKER_HEAP_MB";
|
|
40
44
|
/**
|
|
41
45
|
* Create a pool of worker threads for parallel file parsing.
|
|
42
46
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-pool.d.ts","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAW7B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,EACtB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,GAC5C,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEtB,sEAAsE;IACtE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA0CD,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,gCAAgC,CAAC;AAE/D,0EAA0E;AAC1E,eAAO,MAAM,eAAe,8BAA8B,CAAC;AAsD3D;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,GAAG,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,GAAE,qBAA0B,EAClC,SAAS,CAAC,EAAE,mBAAmB,GAC9B,UAAU,CAsRZ"}
|
|
@@ -20,6 +20,7 @@ import fs from 'node:fs';
|
|
|
20
20
|
import os from 'node:os';
|
|
21
21
|
import { fileURLToPath } from 'node:url';
|
|
22
22
|
import { Worker } from 'node:worker_threads';
|
|
23
|
+
import { PARSER_WORKER_HEAP_DEFAULT_MB, PARSER_WORKER_HEAP_MAX_MB, PARSER_WORKER_HEAP_MIN_MB, } from '@cleocode/contracts';
|
|
23
24
|
// ---------------------------------------------------------------------------
|
|
24
25
|
// Constants
|
|
25
26
|
// ---------------------------------------------------------------------------
|
|
@@ -29,10 +30,68 @@ import { Worker } from 'node:worker_threads';
|
|
|
29
30
|
*/
|
|
30
31
|
const SUB_BATCH_SIZE = 1;
|
|
31
32
|
/**
|
|
32
|
-
* Per
|
|
33
|
-
*
|
|
33
|
+
* Per-file wall budget for a parse worker, in milliseconds.
|
|
34
|
+
*
|
|
35
|
+
* `SUB_BATCH_SIZE` is 1, so this is the time allowed for ONE file — and an
|
|
36
|
+
* overrun rejects the whole dispatch, discarding every file already parsed
|
|
37
|
+
* ("generation not published"). Measured 2026-09-23 on a fuseblk mount under
|
|
38
|
+
* concurrent load from other builds: `cleo nexus analyze` over 4 498 files died
|
|
39
|
+
* with `E_PARSE_WORKER_TIMEOUT: Worker 0 file timed out after 5000ms`, naming
|
|
40
|
+
* no file and no remedy, after 212 s of work.
|
|
41
|
+
*
|
|
42
|
+
* A normal parse is milliseconds; this budget exists to bound a pathological
|
|
43
|
+
* file, not to race a loaded machine. It is generous for that reason, and
|
|
44
|
+
* overridable per {@link PARSE_TIMEOUT_ENV}.
|
|
45
|
+
*
|
|
46
|
+
* @task T12312
|
|
34
47
|
*/
|
|
35
|
-
const SUB_BATCH_TIMEOUT_MS =
|
|
48
|
+
const SUB_BATCH_TIMEOUT_MS = 30_000;
|
|
49
|
+
/** Operator override for the per-file parse budget, in milliseconds. */
|
|
50
|
+
export const PARSE_TIMEOUT_ENV = 'CLEO_NEXUS_PARSE_TIMEOUT_MS';
|
|
51
|
+
/** Operator override for each parse worker's V8 old-space cap, in MiB. */
|
|
52
|
+
export const WORKER_HEAP_ENV = 'CLEO_NEXUS_WORKER_HEAP_MB';
|
|
53
|
+
/** Default V8 old-space cap per parse worker, in MiB. */
|
|
54
|
+
const DEFAULT_WORKER_HEAP_MB = PARSER_WORKER_HEAP_DEFAULT_MB;
|
|
55
|
+
/** Highest cap an operator may request; the default stays conservative. */
|
|
56
|
+
const MAX_WORKER_HEAP_MB = PARSER_WORKER_HEAP_MAX_MB;
|
|
57
|
+
/**
|
|
58
|
+
* V8 old-space cap for one parse worker, honouring the operator override.
|
|
59
|
+
*
|
|
60
|
+
* A worker that exceeds its cap exits with a null code and the dispatch
|
|
61
|
+
* rejects, discarding every file parsed in the run. Measured 2026-09-23 over
|
|
62
|
+
* 4 498 files: workers died both inside CLEO's `cleo-tool-*.scope` (a memcg
|
|
63
|
+
* kill at 251 MB RSS, confirmed in the kernel log) and outside it with no
|
|
64
|
+
* kernel OOM at all — the second being the V8 cap itself. The default is
|
|
65
|
+
* unchanged; what was missing was any way to raise it without editing source.
|
|
66
|
+
*
|
|
67
|
+
* @task T12312
|
|
68
|
+
*/
|
|
69
|
+
function resolveWorkerHeapMb(explicit, env = process.env) {
|
|
70
|
+
if (explicit !== undefined)
|
|
71
|
+
return explicit;
|
|
72
|
+
const override = Number.parseInt(env[WORKER_HEAP_ENV] ?? '', 10);
|
|
73
|
+
if (Number.isFinite(override) && override > 0)
|
|
74
|
+
return override;
|
|
75
|
+
return DEFAULT_WORKER_HEAP_MB;
|
|
76
|
+
}
|
|
77
|
+
/** Per-file parse budget, honouring the operator override. */
|
|
78
|
+
function resolveParseTimeoutMs(explicit, env = process.env) {
|
|
79
|
+
if (explicit !== undefined)
|
|
80
|
+
return explicit;
|
|
81
|
+
const override = Number.parseInt(env[PARSE_TIMEOUT_ENV] ?? '', 10);
|
|
82
|
+
if (Number.isFinite(override) && override > 0)
|
|
83
|
+
return override;
|
|
84
|
+
return SUB_BATCH_TIMEOUT_MS;
|
|
85
|
+
}
|
|
86
|
+
/** Best-effort path of a dispatched work item, for diagnostics only. */
|
|
87
|
+
function describeWorkItem(item) {
|
|
88
|
+
if (typeof item === 'object' && item !== null && 'path' in item) {
|
|
89
|
+
const { path } = item;
|
|
90
|
+
if (typeof path === 'string' && path.length > 0)
|
|
91
|
+
return path;
|
|
92
|
+
}
|
|
93
|
+
return '<unknown file>';
|
|
94
|
+
}
|
|
36
95
|
// ---------------------------------------------------------------------------
|
|
37
96
|
// Factory
|
|
38
97
|
// ---------------------------------------------------------------------------
|
|
@@ -55,16 +114,18 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
|
|
|
55
114
|
throw new Error(`Worker script not found: ${workerPath}`);
|
|
56
115
|
}
|
|
57
116
|
const size = poolSize ?? Math.min(8, Math.max(1, os.cpus().length - 1));
|
|
58
|
-
const timeoutMs = limits.timeoutMs
|
|
59
|
-
const workerHeapMb = limits.workerHeapMb
|
|
117
|
+
const timeoutMs = resolveParseTimeoutMs(limits.timeoutMs);
|
|
118
|
+
const workerHeapMb = resolveWorkerHeapMb(limits.workerHeapMb);
|
|
60
119
|
if (!Number.isSafeInteger(size) || size < 1 || size > 8) {
|
|
61
120
|
throw new RangeError('Parser pool size must be an integer from 1 to 8');
|
|
62
121
|
}
|
|
63
122
|
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
64
123
|
throw new RangeError('Parser worker timeout must be positive and finite');
|
|
65
124
|
}
|
|
66
|
-
if (!Number.isSafeInteger(workerHeapMb) ||
|
|
67
|
-
|
|
125
|
+
if (!Number.isSafeInteger(workerHeapMb) ||
|
|
126
|
+
workerHeapMb < PARSER_WORKER_HEAP_MIN_MB ||
|
|
127
|
+
workerHeapMb > MAX_WORKER_HEAP_MB) {
|
|
128
|
+
throw new RangeError(`Parser worker heap must be an integer from ${PARSER_WORKER_HEAP_MIN_MB} to ${MAX_WORKER_HEAP_MB} MiB`);
|
|
68
129
|
}
|
|
69
130
|
// V8's process-level flags silently override Worker.resourceLimits. A claimed
|
|
70
131
|
// per-worker ceiling would otherwise be false even when resourceLimits reports it.
|
|
@@ -96,14 +157,30 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
|
|
|
96
157
|
owned.postMessage(message);
|
|
97
158
|
else
|
|
98
159
|
owned.child.send(message, (error) => {
|
|
99
|
-
if (error)
|
|
100
|
-
|
|
160
|
+
if (!error)
|
|
161
|
+
return;
|
|
162
|
+
// A write error means the worker is already gone. Reporting EPIPE
|
|
163
|
+
// verbatim names the pipe, not the death — and settles the promise
|
|
164
|
+
// before the 'exit' handler can supply the actual reason (T12312).
|
|
165
|
+
const broken = /EPIPE|ERR_IPC_CHANNEL_CLOSED/.test(error.message);
|
|
166
|
+
errorHandler(broken
|
|
167
|
+
? new Error(`Parse worker ${workerIndex} closed its channel while handling ` +
|
|
168
|
+
`${inFlightDescription} (${error.message}). The write failed because the ` +
|
|
169
|
+
`worker had already exited; the pipe is the symptom, not the cause. ` +
|
|
170
|
+
`Every file parsed so far is discarded. Check the kernel log for an ` +
|
|
171
|
+
`oom-kill naming this process, then raise ${WORKER_HEAP_ENV}=<MiB> or the ` +
|
|
172
|
+
`cgroup ceiling (CLEO_TOOL_MEMORY_MAX_MB); a native parser crash on one ` +
|
|
173
|
+
`file presents the same way.`, { cause: error })
|
|
174
|
+
: error);
|
|
101
175
|
});
|
|
102
176
|
};
|
|
103
177
|
let settled = false;
|
|
104
178
|
let ready = owned instanceof Worker;
|
|
105
179
|
let subBatchTimer = null;
|
|
106
180
|
let subBatchIdx = 0;
|
|
181
|
+
// Retained for diagnostics: a timeout that cannot name the file it was
|
|
182
|
+
// parsing sends the reader looking through 4 498 of them.
|
|
183
|
+
let inFlightDescription = '<not yet dispatched>';
|
|
107
184
|
const cleanup = () => {
|
|
108
185
|
if (subBatchTimer) {
|
|
109
186
|
clearTimeout(subBatchTimer);
|
|
@@ -121,7 +198,11 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
|
|
|
121
198
|
if (!settled) {
|
|
122
199
|
settled = true;
|
|
123
200
|
cleanup();
|
|
124
|
-
reject(new Error(`E_PARSE_WORKER_TIMEOUT:
|
|
201
|
+
reject(new Error(`E_PARSE_WORKER_TIMEOUT: worker ${workerIndex} exceeded ${timeoutMs}ms parsing ` +
|
|
202
|
+
`${inFlightDescription}. Every file parsed so far in this run is discarded, so ` +
|
|
203
|
+
`one slow file fails the whole index. Raise the per-file budget with ` +
|
|
204
|
+
`${PARSE_TIMEOUT_ENV}=<ms> — a loaded machine or a network/FUSE mount can ` +
|
|
205
|
+
`exceed the default, and a genuinely pathological file will still be bounded.`));
|
|
125
206
|
}
|
|
126
207
|
}, timeoutMs);
|
|
127
208
|
};
|
|
@@ -133,6 +214,7 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
|
|
|
133
214
|
return;
|
|
134
215
|
}
|
|
135
216
|
const subBatch = chunk.slice(start, start + SUB_BATCH_SIZE);
|
|
217
|
+
inFlightDescription = subBatch.map(describeWorkItem).join(', ');
|
|
136
218
|
subBatchIdx++;
|
|
137
219
|
resetSubBatchTimer();
|
|
138
220
|
send({ type: 'sub-batch', files: subBatch });
|
|
@@ -183,7 +265,18 @@ export function createWorkerPool(workerUrl, poolSize, limits = {}, execution) {
|
|
|
183
265
|
if (!settled) {
|
|
184
266
|
settled = true;
|
|
185
267
|
cleanup();
|
|
186
|
-
reject(new Error(`
|
|
268
|
+
reject(new Error(`Parse worker ${workerIndex} exited with code ${code} while handling ` +
|
|
269
|
+
`${inFlightDescription}. Every file parsed so far is discarded. ` +
|
|
270
|
+
(code === null
|
|
271
|
+
? `A null code means it was KILLED rather than returning — most often the ` +
|
|
272
|
+
`${workerHeapMb}MiB V8 old-space cap, or a memory-cgroup ceiling when CLEO ` +
|
|
273
|
+
`confines the run. Raise ${WORKER_HEAP_ENV}=<MiB>; if the kernel log shows ` +
|
|
274
|
+
`an oom-kill with constraint=CONSTRAINT_MEMCG, raise CLEO_TOOL_MEMORY_MAX_MB ` +
|
|
275
|
+
`or disable confinement with CLEO_NO_TOOL_CGROUP=1.`
|
|
276
|
+
: `A non-null code means the worker THREW rather than being killed, so memory ` +
|
|
277
|
+
`limits are not the cause and raising them will not help. The named file is ` +
|
|
278
|
+
`the one dispatched to this worker; re-run with a single worker to confirm ` +
|
|
279
|
+
`it is the trigger rather than a coincidence of timing.`)));
|
|
187
280
|
}
|
|
188
281
|
};
|
|
189
282
|
const abortHandler = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"worker-pool.js","sourceRoot":"","sources":["../../../../src/pipeline/workers/worker-pool.ts"],"names":[],"mappings":"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"}
|