@descryy/runtime-orchestrator 0.5.0 → 0.5.1
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/attach-log-sources.d.ts +12 -2
- package/dist/attach-log-sources.d.ts.map +1 -1
- package/dist/attach-log-sources.js +132 -26
- package/dist/attach-log-sources.js.map +1 -1
- package/dist/attach-to-running-jvm-process.d.ts.map +1 -1
- package/dist/attach-to-running-jvm-process.js +129 -37
- package/dist/attach-to-running-jvm-process.js.map +1 -1
- package/dist/attach-to-running-node-process.d.ts +2 -0
- package/dist/attach-to-running-node-process.d.ts.map +1 -1
- package/dist/attach-to-running-node-process.js +222 -27
- package/dist/attach-to-running-node-process.js.map +1 -1
- package/dist/attach-to-running-process.d.ts.map +1 -1
- package/dist/attach-to-running-process.js +57 -11
- package/dist/attach-to-running-process.js.map +1 -1
- package/dist/cdp-client.d.ts +7 -1
- package/dist/cdp-client.d.ts.map +1 -1
- package/dist/cdp-client.js +83 -7
- package/dist/cdp-client.js.map +1 -1
- package/dist/cgroup-partial-restriction.d.ts.map +1 -1
- package/dist/cgroup-partial-restriction.js +4 -1
- package/dist/cgroup-partial-restriction.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/instrumented-execution.d.ts +2 -0
- package/dist/instrumented-execution.d.ts.map +1 -1
- package/dist/instrumented-execution.js +136 -14
- package/dist/instrumented-execution.js.map +1 -1
- package/dist/jvm-agent/build.d.ts +2 -2
- package/dist/jvm-agent/build.d.ts.map +1 -1
- package/dist/jvm-agent/build.js +46 -17
- package/dist/jvm-agent/build.js.map +1 -1
- package/dist/polling-output-source.d.ts +16 -6
- package/dist/polling-output-source.d.ts.map +1 -1
- package/dist/polling-output-source.js +38 -22
- package/dist/polling-output-source.js.map +1 -1
- package/dist/profile-backend-observation.d.ts +7 -0
- package/dist/profile-backend-observation.d.ts.map +1 -1
- package/dist/profile-backend-observation.js +87 -25
- package/dist/profile-backend-observation.js.map +1 -1
- package/dist/respawn-and-supervise.d.ts +1 -0
- package/dist/respawn-and-supervise.d.ts.map +1 -1
- package/dist/respawn-and-supervise.js +29 -1
- package/dist/respawn-and-supervise.js.map +1 -1
- package/package.json +17 -17
|
@@ -39,12 +39,22 @@ export interface StreamAttachLogSourceOptions {
|
|
|
39
39
|
/** How often to check `isFinished` while no output is arriving. Default 50ms. */
|
|
40
40
|
readonly pollIntervalMs?: number;
|
|
41
41
|
}
|
|
42
|
+
export interface DisposableProcessOutputSource extends ProcessOutputSource {
|
|
43
|
+
readonly dispose: () => void;
|
|
44
|
+
}
|
|
42
45
|
/** `docker logs -f --since <attachedAt> <container>` as a `ProcessOutputSource`. */
|
|
43
|
-
export declare function createDockerAttachLogSource(container: string, options: StreamAttachLogSourceOptions):
|
|
46
|
+
export declare function createDockerAttachLogSource(container: string, options: StreamAttachLogSourceOptions): DisposableProcessOutputSource;
|
|
44
47
|
/**
|
|
45
48
|
* `journalctl -f -o cat -u <unit> --since @<seconds>` as a `ProcessOutputSource`.
|
|
46
49
|
* `-o cat` prints the message body only, matching a plain log line's shape
|
|
47
50
|
* rather than journald's own structured record.
|
|
48
51
|
*/
|
|
49
|
-
export declare function createSystemdAttachLogSource(unit: string, options: StreamAttachLogSourceOptions):
|
|
52
|
+
export declare function createSystemdAttachLogSource(unit: string, options: StreamAttachLogSourceOptions): DisposableProcessOutputSource;
|
|
53
|
+
export declare function createPodmanAttachLogSource(container: string, options: StreamAttachLogSourceOptions): DisposableProcessOutputSource;
|
|
54
|
+
export interface KubernetesContainerTarget {
|
|
55
|
+
readonly namespace: string;
|
|
56
|
+
readonly pod: string;
|
|
57
|
+
readonly container: string;
|
|
58
|
+
}
|
|
59
|
+
export declare function createKubernetesAttachLogSource(target: KubernetesContainerTarget, options: StreamAttachLogSourceOptions): DisposableProcessOutputSource;
|
|
50
60
|
//# sourceMappingURL=attach-log-sources.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-log-sources.d.ts","sourceRoot":"","sources":["../src/attach-log-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAS,KAAK,8BAA8B,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"attach-log-sources.d.ts","sourceRoot":"","sources":["../src/attach-log-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAS,KAAK,8BAA8B,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE/G,OAAO,EAAwC,KAAK,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEtH,gIAAgI;AAChI,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,KAAK,8BAA8B,CAAC;AAE9I,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qFAAqF;IACrF,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC;IACnC,qFAAqF;IACrF,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IAClC,iFAAiF;IACjF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AA0LD,oFAAoF;AACpF,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,GAAG,6BAA6B,CAKnI;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,GAAG,6BAA6B,CAM/H;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,GAAG,6BAA6B,CAKnI;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,yBAAyB,EAAE,OAAO,EAAE,4BAA4B,GAAG,6BAA6B,CAoBvJ"}
|
|
@@ -25,10 +25,30 @@
|
|
|
25
25
|
* `DiscoveredAttachLogSource`'s own doc (`@descryy/runtime-contracts`).
|
|
26
26
|
*/
|
|
27
27
|
import { spawn } from "node:child_process";
|
|
28
|
+
import { StringDecoder } from "node:string_decoder";
|
|
28
29
|
import { LineSplitter } from "@descryy/runtime-backend-observation";
|
|
30
|
+
const QUEUE_HIGH_WATER_CHARS = 1024 * 1024;
|
|
31
|
+
const QUEUE_LOW_WATER_CHARS = 256 * 1024;
|
|
32
|
+
const WATCHDOG_MIN_INTERVAL_MS = 250;
|
|
33
|
+
const SAFE_IDENTIFIER = /^[A-Za-z0-9_@][A-Za-z0-9_.:@\\-]*$/;
|
|
34
|
+
function assertSafeIdentifier(kind, value) {
|
|
35
|
+
if (typeof value !== "string" || !SAFE_IDENTIFIER.test(value)) {
|
|
36
|
+
throw new Error(`attach log source: ${kind} ${JSON.stringify(value)} is not a valid identifier (letters, digits and . _ : @ - only, not starting with "-"), so it was not passed to a command line`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
29
39
|
const DEFAULT_POLL_INTERVAL_MS = 50;
|
|
30
40
|
/** After the follower is killed, how long to wait for its `close` before ending anyway. */
|
|
31
41
|
const CLOSE_GRACE_MS = 2_000;
|
|
42
|
+
const RECENT_OUTPUT_CHARS = 600;
|
|
43
|
+
function followerFailure(label, spawnError, exit, recent) {
|
|
44
|
+
if (spawnError !== null)
|
|
45
|
+
return `could not run ${label}: ${spawnError.message}`;
|
|
46
|
+
if (exit === null || exit.code === 0)
|
|
47
|
+
return null;
|
|
48
|
+
const how = exit.code === null ? `on ${String(exit.signal)}` : String(exit.code);
|
|
49
|
+
const lastOutput = recent.trim().split("\n").slice(-3).join(" | ");
|
|
50
|
+
return `${label} exited ${how} while following the logs${lastOutput === "" ? "" : `: ${lastOutput}`}; nothing after that point was observed`;
|
|
51
|
+
}
|
|
32
52
|
/**
|
|
33
53
|
* Merges a child process's stdout and stderr into one line stream, in
|
|
34
54
|
* arrival order (no true cross-stream ordering guarantee -- the same
|
|
@@ -36,13 +56,21 @@ const CLOSE_GRACE_MS = 2_000;
|
|
|
36
56
|
* already states for `ManagedProcess`). Spawns on first read; ends when the
|
|
37
57
|
* child closes, or once `isFinished()` is true (killing the child first).
|
|
38
58
|
*/
|
|
39
|
-
async function* tailChildProcessLines(start, isFinished, pollIntervalMs) {
|
|
59
|
+
async function* tailChildProcessLines(label, start, isFinished, pollIntervalMs, handle) {
|
|
60
|
+
if (handle.disposed)
|
|
61
|
+
return;
|
|
40
62
|
const child = start();
|
|
63
|
+
handle.child = child;
|
|
41
64
|
const splitter = new LineSplitter();
|
|
42
65
|
const queue = [];
|
|
66
|
+
let queuedChars = 0;
|
|
67
|
+
let paused = false;
|
|
43
68
|
let waiter = null;
|
|
44
69
|
let done = false;
|
|
45
70
|
let killedAt = null;
|
|
71
|
+
let spawnError = null;
|
|
72
|
+
let exit = null;
|
|
73
|
+
let recent = "";
|
|
46
74
|
function wake() {
|
|
47
75
|
if (waiter !== null) {
|
|
48
76
|
const resolve = waiter;
|
|
@@ -50,25 +78,65 @@ async function* tailChildProcessLines(start, isFinished, pollIntervalMs) {
|
|
|
50
78
|
resolve();
|
|
51
79
|
}
|
|
52
80
|
}
|
|
53
|
-
function
|
|
54
|
-
|
|
81
|
+
function enqueue(text) {
|
|
82
|
+
if (text === "")
|
|
83
|
+
return;
|
|
84
|
+
recent = (recent + text).slice(-RECENT_OUTPUT_CHARS);
|
|
85
|
+
queue.push(text);
|
|
86
|
+
queuedChars += text.length;
|
|
87
|
+
if (!paused && queuedChars > QUEUE_HIGH_WATER_CHARS) {
|
|
88
|
+
paused = true;
|
|
89
|
+
child.stdout.pause();
|
|
90
|
+
child.stderr.pause();
|
|
91
|
+
}
|
|
55
92
|
wake();
|
|
56
93
|
}
|
|
57
|
-
function
|
|
94
|
+
function releaseBackpressure() {
|
|
95
|
+
if (paused && queuedChars < QUEUE_LOW_WATER_CHARS) {
|
|
96
|
+
paused = false;
|
|
97
|
+
child.stdout.resume();
|
|
98
|
+
child.stderr.resume();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function onChunkFrom(decoder) {
|
|
102
|
+
return (chunk) => enqueue(decoder.write(chunk));
|
|
103
|
+
}
|
|
104
|
+
function onClose(code, signal) {
|
|
105
|
+
exit = { code, signal };
|
|
58
106
|
done = true;
|
|
59
107
|
wake();
|
|
60
108
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
109
|
+
function stopFollower() {
|
|
110
|
+
if (killedAt === null)
|
|
111
|
+
killedAt = Date.now();
|
|
112
|
+
if (child.exitCode === null && child.signalCode === null)
|
|
113
|
+
child.kill();
|
|
114
|
+
}
|
|
115
|
+
const stdoutDecoder = new StringDecoder("utf8");
|
|
116
|
+
const stderrDecoder = new StringDecoder("utf8");
|
|
117
|
+
const onStdout = onChunkFrom(stdoutDecoder);
|
|
118
|
+
const onStderr = onChunkFrom(stderrDecoder);
|
|
119
|
+
child.stdout.on("data", onStdout);
|
|
120
|
+
child.stderr.on("data", onStderr);
|
|
121
|
+
child.stdout.once("end", () => enqueue(stdoutDecoder.end()));
|
|
122
|
+
child.stderr.once("end", () => enqueue(stderrDecoder.end()));
|
|
123
|
+
child.once("close", onClose);
|
|
124
|
+
child.on("error", (error) => {
|
|
125
|
+
spawnError ??= error;
|
|
126
|
+
done = true;
|
|
127
|
+
wake();
|
|
128
|
+
});
|
|
129
|
+
const watchdog = setInterval(() => {
|
|
130
|
+
if (handle.disposed || isFinished())
|
|
131
|
+
stopFollower();
|
|
132
|
+
}, Math.max(pollIntervalMs, WATCHDOG_MIN_INTERVAL_MS));
|
|
133
|
+
watchdog.unref();
|
|
68
134
|
try {
|
|
69
135
|
for (;;) {
|
|
70
136
|
while (queue.length > 0) {
|
|
71
137
|
const chunk = queue.shift();
|
|
138
|
+
queuedChars -= chunk.length;
|
|
139
|
+
releaseBackpressure();
|
|
72
140
|
const observedAt = new Date().toISOString();
|
|
73
141
|
for (const text of splitter.push(chunk)) {
|
|
74
142
|
yield { text, stream: "combined", observedAt };
|
|
@@ -78,11 +146,15 @@ async function* tailChildProcessLines(start, isFinished, pollIntervalMs) {
|
|
|
78
146
|
const observedAt = new Date().toISOString();
|
|
79
147
|
for (const text of splitter.flush())
|
|
80
148
|
yield { text, stream: "combined", observedAt };
|
|
149
|
+
if (killedAt !== null)
|
|
150
|
+
return;
|
|
151
|
+
const failure = followerFailure(label, spawnError, exit, recent);
|
|
152
|
+
if (failure !== null)
|
|
153
|
+
throw new Error(failure);
|
|
81
154
|
return;
|
|
82
155
|
}
|
|
83
|
-
if (killedAt === null && isFinished()) {
|
|
84
|
-
|
|
85
|
-
child.kill();
|
|
156
|
+
if (killedAt === null && (handle.disposed || isFinished())) {
|
|
157
|
+
stopFollower();
|
|
86
158
|
continue;
|
|
87
159
|
}
|
|
88
160
|
await new Promise((resolve) => {
|
|
@@ -98,35 +170,69 @@ async function* tailChildProcessLines(start, isFinished, pollIntervalMs) {
|
|
|
98
170
|
}
|
|
99
171
|
}
|
|
100
172
|
finally {
|
|
101
|
-
|
|
102
|
-
child.
|
|
173
|
+
clearInterval(watchdog);
|
|
174
|
+
child.stdout.off("data", onStdout);
|
|
175
|
+
child.stderr.off("data", onStderr);
|
|
103
176
|
if (child.exitCode === null && child.signalCode === null)
|
|
104
177
|
child.kill();
|
|
178
|
+
child.stdout.destroy();
|
|
179
|
+
child.stderr.destroy();
|
|
105
180
|
}
|
|
106
181
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const attachedAt = options.attachedAt ?? new Date();
|
|
110
|
-
const spawnFn = options.spawnFn ?? spawn;
|
|
182
|
+
function followerSource(options, label, start) {
|
|
183
|
+
const handle = { child: null, disposed: false };
|
|
111
184
|
return {
|
|
112
185
|
processId: options.processId,
|
|
113
186
|
serviceName: options.serviceName,
|
|
114
|
-
lines: tailChildProcessLines(
|
|
187
|
+
lines: tailChildProcessLines(label, start, options.isFinished, options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS, handle),
|
|
188
|
+
dispose: () => {
|
|
189
|
+
handle.disposed = true;
|
|
190
|
+
handle.child?.kill();
|
|
191
|
+
},
|
|
115
192
|
};
|
|
116
193
|
}
|
|
194
|
+
/** `docker logs -f --since <attachedAt> <container>` as a `ProcessOutputSource`. */
|
|
195
|
+
export function createDockerAttachLogSource(container, options) {
|
|
196
|
+
assertSafeIdentifier("docker container", container);
|
|
197
|
+
const attachedAt = options.attachedAt ?? new Date();
|
|
198
|
+
const spawnFn = options.spawnFn ?? spawn;
|
|
199
|
+
return followerSource(options, "docker logs", () => spawnFn("docker", ["logs", "-f", "--since", attachedAt.toISOString(), "--", container]));
|
|
200
|
+
}
|
|
117
201
|
/**
|
|
118
202
|
* `journalctl -f -o cat -u <unit> --since @<seconds>` as a `ProcessOutputSource`.
|
|
119
203
|
* `-o cat` prints the message body only, matching a plain log line's shape
|
|
120
204
|
* rather than journald's own structured record.
|
|
121
205
|
*/
|
|
122
206
|
export function createSystemdAttachLogSource(unit, options) {
|
|
207
|
+
assertSafeIdentifier("systemd unit", unit);
|
|
123
208
|
const attachedAt = options.attachedAt ?? new Date();
|
|
124
209
|
const spawnFn = options.spawnFn ?? spawn;
|
|
125
210
|
const since = `@${String(Math.ceil(attachedAt.getTime() / 1000))}`;
|
|
126
|
-
return
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
211
|
+
return followerSource(options, "journalctl", () => spawnFn("journalctl", ["-f", "-o", "cat", "-u", unit, "--since", since]));
|
|
212
|
+
}
|
|
213
|
+
export function createPodmanAttachLogSource(container, options) {
|
|
214
|
+
assertSafeIdentifier("podman container", container);
|
|
215
|
+
const attachedAt = options.attachedAt ?? new Date();
|
|
216
|
+
const spawnFn = options.spawnFn ?? spawn;
|
|
217
|
+
return followerSource(options, "podman logs", () => spawnFn("podman", ["logs", "-f", "--since", attachedAt.toISOString(), "--", container]));
|
|
218
|
+
}
|
|
219
|
+
export function createKubernetesAttachLogSource(target, options) {
|
|
220
|
+
assertSafeIdentifier("kubernetes namespace", target.namespace);
|
|
221
|
+
assertSafeIdentifier("kubernetes pod", target.pod);
|
|
222
|
+
assertSafeIdentifier("kubernetes container", target.container);
|
|
223
|
+
const attachedAt = options.attachedAt ?? new Date();
|
|
224
|
+
const spawnFn = options.spawnFn ?? spawn;
|
|
225
|
+
return followerSource(options, "kubectl logs", () => spawnFn("kubectl", [
|
|
226
|
+
"logs",
|
|
227
|
+
"-f",
|
|
228
|
+
"--namespace",
|
|
229
|
+
target.namespace,
|
|
230
|
+
"--container",
|
|
231
|
+
target.container,
|
|
232
|
+
"--since-time",
|
|
233
|
+
attachedAt.toISOString(),
|
|
234
|
+
"--",
|
|
235
|
+
target.pod,
|
|
236
|
+
]));
|
|
131
237
|
}
|
|
132
238
|
//# sourceMappingURL=attach-log-sources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-log-sources.js","sourceRoot":"","sources":["../src/attach-log-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,KAAK,EAAsE,MAAM,oBAAoB,CAAC;AAC/G,OAAO,EAAE,YAAY,EAAoD,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"attach-log-sources.js","sourceRoot":"","sources":["../src/attach-log-sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-to-running-jvm-process.d.ts","sourceRoot":"","sources":["../src/attach-to-running-jvm-process.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;
|
|
1
|
+
{"version":3,"file":"attach-to-running-jvm-process.d.ts","sourceRoot":"","sources":["../src/attach-to-running-jvm-process.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AASH,OAAO,KAAK,EAAE,SAAS,EAAyF,MAAM,4BAA4B,CAAC;AA+BnJ,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+IAA+I;IAC/I,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iLAAiL;IACjL,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,iEAAiE;IACjE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAqND;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gCAAgC,GAAG,SAAS,CA2P9F"}
|
|
@@ -34,13 +34,42 @@
|
|
|
34
34
|
* `Attacher.java` once (mtime-cached) and this module spawns it as a short-lived
|
|
35
35
|
* `java` child process.
|
|
36
36
|
*/
|
|
37
|
-
import { existsSync, mkdtempSync,
|
|
37
|
+
import { existsSync, mkdtempSync, writeFileSync, rmSync } from "node:fs";
|
|
38
|
+
import { open } from "node:fs/promises";
|
|
39
|
+
import { StringDecoder } from "node:string_decoder";
|
|
38
40
|
import { tmpdir } from "node:os";
|
|
39
41
|
import { join } from "node:path";
|
|
40
|
-
import {
|
|
42
|
+
import { execFile } from "node:child_process";
|
|
41
43
|
import { isProcessAlive } from "./attach-to-running-process.js";
|
|
42
44
|
import { buildJvmAgentJar, buildAttacherClass, findToolsJarIfPresent } from "./jvm-agent/build.js";
|
|
43
45
|
import { COLLECTOR_VERSION } from "./collector-version.js";
|
|
46
|
+
const EVENT_READ_CHUNK_BYTES = 1024 * 1024;
|
|
47
|
+
const PS_TIMEOUT_MS = 5_000;
|
|
48
|
+
const ATTACHER_OUTPUT_LIMIT_BYTES = 4 * 1024 * 1024;
|
|
49
|
+
function invalidTargetPidReason(pid) {
|
|
50
|
+
if (!Number.isSafeInteger(pid))
|
|
51
|
+
return `${String(pid)} is not a whole number`;
|
|
52
|
+
if (pid < 2)
|
|
53
|
+
return `${String(pid)} is not a process this session may attach to (0 and negative values address process groups, 1 is init)`;
|
|
54
|
+
if (pid === process.pid || pid === process.ppid)
|
|
55
|
+
return `pid ${String(pid)} is this process or its parent, which must never be the target of an attach`;
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
async function readAppended(path, offset) {
|
|
59
|
+
const handle = await open(path, "r");
|
|
60
|
+
try {
|
|
61
|
+
const { size } = await handle.stat();
|
|
62
|
+
if (size <= offset)
|
|
63
|
+
return Buffer.alloc(0);
|
|
64
|
+
const length = Math.min(size - offset, EVENT_READ_CHUNK_BYTES);
|
|
65
|
+
const buffer = Buffer.allocUnsafe(length);
|
|
66
|
+
const { bytesRead } = await handle.read(buffer, 0, length, offset);
|
|
67
|
+
return buffer.subarray(0, bytesRead);
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
await handle.close();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
44
73
|
/**
|
|
45
74
|
* Reconstructs a repo-relative source path from a JVM frame's fully-qualified
|
|
46
75
|
* declaring class name and basename, or `null` when it can't be done exactly
|
|
@@ -129,14 +158,25 @@ function frameToStackFrame(frame, sourceRoots) {
|
|
|
129
158
|
* wastes a real attempt for a confusing downstream failure instead of a clear
|
|
130
159
|
* refusal here. `ps`, not `/proc`, for the same Linux/macOS portability reason.
|
|
131
160
|
*/
|
|
132
|
-
function verifyLikelyJvmProcess(pid) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
161
|
+
async function verifyLikelyJvmProcess(pid) {
|
|
162
|
+
let comm;
|
|
163
|
+
let failure = null;
|
|
164
|
+
try {
|
|
165
|
+
comm = await new Promise((resolve, reject) => {
|
|
166
|
+
execFile("ps", ["-o", "comm=", "-p", String(pid)], { encoding: "utf8", timeout: PS_TIMEOUT_MS }, (error, stdout) => {
|
|
167
|
+
if (error !== null)
|
|
168
|
+
reject(error);
|
|
169
|
+
else
|
|
170
|
+
resolve(stdout.trim().split("\n")[0]?.trim().toLowerCase() ?? "");
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
failure = error instanceof Error ? error.message : String(error);
|
|
176
|
+
}
|
|
177
|
+
if (failure !== null || comm === undefined || comm === "") {
|
|
178
|
+
return { ok: false, reason: `could not verify pid ${String(pid)}'s command via ps (${failure ?? "ps printed nothing"}) — refusing to attempt a JVM attach against a process this module cannot confirm the identity of` };
|
|
137
179
|
}
|
|
138
|
-
// covers "java", "javaw", and "java (someapp)" truncation -- allowlists the
|
|
139
|
-
// launcher, never app names
|
|
140
180
|
if (!comm.includes("java")) {
|
|
141
181
|
return { ok: false, reason: `pid ${String(pid)}'s command is "${comm}", which does not look like a JVM — refusing to attempt a Dynamic Attach against a process that is unlikely to have one` };
|
|
142
182
|
}
|
|
@@ -167,21 +207,36 @@ const CAPABILITIES = {
|
|
|
167
207
|
* exits 0 (attach + loadAgent both succeeded); rejects with the helper's own
|
|
168
208
|
* stderr otherwise — never guesses at success from silence.
|
|
169
209
|
*/
|
|
170
|
-
function runAttacher(pid, agentJarPath, outputFilePath, attacherDir, attachTimeoutMs) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
encoding: "utf8",
|
|
175
|
-
timeout: attachTimeoutMs,
|
|
176
|
-
});
|
|
177
|
-
if (result.error !== undefined) {
|
|
178
|
-
return { ok: false, reason: `attachToRunningJvmProcess: could not launch the java Attacher helper: ${result.error.message}` };
|
|
210
|
+
async function runAttacher(pid, agentJarPath, outputFilePath, attacherDir, attachTimeoutMs) {
|
|
211
|
+
let toolsJar;
|
|
212
|
+
try {
|
|
213
|
+
toolsJar = await findToolsJarIfPresent();
|
|
179
214
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
return { ok: false, reason: `attachToRunningJvmProcess: Attacher failed to attach to pid ${String(pid)}: ${detail}` };
|
|
215
|
+
catch (error) {
|
|
216
|
+
return { ok: false, reason: `attachToRunningJvmProcess: ${error instanceof Error ? error.message : String(error)}` };
|
|
183
217
|
}
|
|
184
|
-
|
|
218
|
+
const classpath = toolsJar !== null ? `${attacherDir}:${toolsJar}` : attacherDir;
|
|
219
|
+
return new Promise((resolve) => {
|
|
220
|
+
execFile("java", ["-cp", classpath, "Attacher", String(pid), agentJarPath, outputFilePath], { encoding: "utf8", timeout: attachTimeoutMs, maxBuffer: ATTACHER_OUTPUT_LIMIT_BYTES }, (error, stdout, stderr) => {
|
|
221
|
+
if (error === null) {
|
|
222
|
+
resolve({ ok: true });
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const code = error.code;
|
|
226
|
+
if (typeof code !== "number") {
|
|
227
|
+
const timedOut = error.killed === true;
|
|
228
|
+
resolve({
|
|
229
|
+
ok: false,
|
|
230
|
+
reason: timedOut
|
|
231
|
+
? `attachToRunningJvmProcess: the java Attacher helper did not finish within ${String(attachTimeoutMs)} ms and was stopped`
|
|
232
|
+
: `attachToRunningJvmProcess: could not launch the java Attacher helper: ${error.message}`,
|
|
233
|
+
});
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const detail = stderr.trim() || stdout.trim() || `exit code ${String(code)}`;
|
|
237
|
+
resolve({ ok: false, reason: `attachToRunningJvmProcess: Attacher failed to attach to pid ${String(pid)}: ${detail}` });
|
|
238
|
+
});
|
|
239
|
+
});
|
|
185
240
|
}
|
|
186
241
|
/**
|
|
187
242
|
* Attach to an already-running JVM process via the HotSpot Dynamic Attach
|
|
@@ -232,6 +287,10 @@ export function attachToRunningJvmProcess(options) {
|
|
|
232
287
|
collectorId: `attach-jvm-agent:${options.processId}`,
|
|
233
288
|
async start(context) {
|
|
234
289
|
capturedContext = context;
|
|
290
|
+
const invalidPid = invalidTargetPidReason(options.pid);
|
|
291
|
+
if (invalidPid !== null) {
|
|
292
|
+
return { available: false, reason: `attachToRunningJvmProcess: ${invalidPid}.` };
|
|
293
|
+
}
|
|
235
294
|
if (!isProcessAlive(options.pid)) {
|
|
236
295
|
return { available: false, reason: `attachToRunningJvmProcess: pid ${String(options.pid)} is not running — cannot attach to a target that does not exist.` };
|
|
237
296
|
}
|
|
@@ -241,7 +300,7 @@ export function attachToRunningJvmProcess(options) {
|
|
|
241
300
|
// A-F10: checked before spawning the Attacher helper, not after —
|
|
242
301
|
// see verifyLikelyJvmProcess's own doc for why this is a lighter check
|
|
243
302
|
// than the Node sibling's (the OS already enforces same-uid here).
|
|
244
|
-
const identity = verifyLikelyJvmProcess(options.pid);
|
|
303
|
+
const identity = await verifyLikelyJvmProcess(options.pid);
|
|
245
304
|
if (!identity.ok) {
|
|
246
305
|
return { available: false, reason: `attachToRunningJvmProcess: ${identity.reason}.` };
|
|
247
306
|
}
|
|
@@ -249,17 +308,25 @@ export function attachToRunningJvmProcess(options) {
|
|
|
249
308
|
let attacherDir;
|
|
250
309
|
try {
|
|
251
310
|
agentJarPath = await buildJvmAgentJar();
|
|
252
|
-
attacherDir = buildAttacherClass();
|
|
311
|
+
attacherDir = await buildAttacherClass();
|
|
253
312
|
}
|
|
254
313
|
catch (error) {
|
|
255
314
|
return { available: false, reason: error instanceof Error ? error.message : String(error) };
|
|
256
315
|
}
|
|
257
316
|
const dir = mkdtempSync(join(tmpdir(), "descry-jvm-attach-"));
|
|
258
317
|
const outFile = join(dir, "events.log");
|
|
259
|
-
writeFileSync(outFile, "");
|
|
260
318
|
const attachTimeoutMs = options.attachTimeoutMs ?? 10_000;
|
|
261
|
-
|
|
319
|
+
let attachResult;
|
|
320
|
+
try {
|
|
321
|
+
writeFileSync(outFile, "");
|
|
322
|
+
attachResult = await runAttacher(options.pid, agentJarPath, outFile, attacherDir, attachTimeoutMs);
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
rmSync(dir, { recursive: true, force: true });
|
|
326
|
+
return { available: false, reason: error instanceof Error ? error.message : String(error) };
|
|
327
|
+
}
|
|
262
328
|
if (!attachResult.ok) {
|
|
329
|
+
rmSync(dir, { recursive: true, force: true });
|
|
263
330
|
return { available: false, reason: attachResult.reason };
|
|
264
331
|
}
|
|
265
332
|
// A-F8: recorded so stop() can run the same Attacher helper a second
|
|
@@ -268,19 +335,45 @@ export function attachToRunningJvmProcess(options) {
|
|
|
268
335
|
attached = { agentJarPath, attacherDir, outFile, dir, attachTimeoutMs };
|
|
269
336
|
const pollIntervalMs = options.pollIntervalMs ?? 50;
|
|
270
337
|
let consumed = 0;
|
|
338
|
+
let pendingLine = "";
|
|
339
|
+
const eventDecoder = new StringDecoder("utf8");
|
|
340
|
+
const reportedPollFailures = new Set();
|
|
341
|
+
const reportPollFailure = (error) => {
|
|
342
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
343
|
+
if (reportedPollFailures.has(message))
|
|
344
|
+
return;
|
|
345
|
+
reportedPollFailures.add(message);
|
|
346
|
+
try {
|
|
347
|
+
emitCollectorError(`attachToRunningJvmProcess: reading the target's event file failed (${message}); evidence written while this persists is not captured.`);
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
};
|
|
271
353
|
const poll = async () => {
|
|
272
354
|
for (;;) {
|
|
273
355
|
if (stopped)
|
|
274
356
|
return;
|
|
275
|
-
|
|
276
|
-
await
|
|
277
|
-
continue;
|
|
357
|
+
try {
|
|
358
|
+
await pollOnce();
|
|
278
359
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
360
|
+
catch (error) {
|
|
361
|
+
reportPollFailure(error);
|
|
362
|
+
}
|
|
363
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
const pollOnce = async () => {
|
|
367
|
+
{
|
|
368
|
+
if (!existsSync(outFile))
|
|
369
|
+
return;
|
|
370
|
+
const appended = await readAppended(outFile, consumed);
|
|
371
|
+
if (appended.length > 0) {
|
|
372
|
+
consumed += appended.length;
|
|
373
|
+
const chunk = pendingLine + eventDecoder.write(appended);
|
|
374
|
+
const lines = chunk.split("\n");
|
|
375
|
+
pendingLine = lines.pop() ?? "";
|
|
376
|
+
for (const rawLine of lines) {
|
|
284
377
|
const line = rawLine.trim();
|
|
285
378
|
if (line === "")
|
|
286
379
|
continue;
|
|
@@ -341,10 +434,9 @@ export function attachToRunningJvmProcess(options) {
|
|
|
341
434
|
// being parsed, not turned into evidence.
|
|
342
435
|
}
|
|
343
436
|
}
|
|
344
|
-
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
345
437
|
}
|
|
346
438
|
};
|
|
347
|
-
void poll();
|
|
439
|
+
void poll().catch(reportPollFailure);
|
|
348
440
|
return { available: true };
|
|
349
441
|
},
|
|
350
442
|
/**
|
|
@@ -378,7 +470,7 @@ export function attachToRunningJvmProcess(options) {
|
|
|
378
470
|
return;
|
|
379
471
|
}
|
|
380
472
|
if (isProcessAlive(options.pid)) {
|
|
381
|
-
const detachAttempt = runAttacher(options.pid, state.agentJarPath, DETACH_COMMAND, state.attacherDir, state.attachTimeoutMs);
|
|
473
|
+
const detachAttempt = await runAttacher(options.pid, state.agentJarPath, DETACH_COMMAND, state.attacherDir, state.attachTimeoutMs);
|
|
382
474
|
if (detachAttempt.ok) {
|
|
383
475
|
const deadline = Date.now() + Math.min(state.attachTimeoutMs, 5000);
|
|
384
476
|
while (!detachConfirmed && Date.now() < deadline) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach-to-running-jvm-process.js","sourceRoot":"","sources":["../src/attach-to-running-jvm-process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attach-to-running-jvm-process.js","sourceRoot":"","sources":["../src/attach-to-running-jvm-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@ export interface AttachToRunningNodeProcessOptions {
|
|
|
49
49
|
readonly discoveryPort?: number;
|
|
50
50
|
/** How long to poll the discovery endpoint after sending SIGUSR1 before giving up. The inspector does not bind instantaneously. */
|
|
51
51
|
readonly discoveryTimeoutMs?: number;
|
|
52
|
+
readonly allowUnverifiedInspectorOwner?: boolean;
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
54
55
|
* Sends `SIGUSR1` to `pid`, then polls `http://<host>:<port>/json` until the
|
|
@@ -63,6 +64,7 @@ export declare function discoverNodeInspectorUrl(pid: number, options?: {
|
|
|
63
64
|
readonly host?: string;
|
|
64
65
|
readonly port?: number;
|
|
65
66
|
readonly timeoutMs?: number;
|
|
67
|
+
readonly allowUnverifiedOwner?: boolean;
|
|
66
68
|
}): Promise<string>;
|
|
67
69
|
/**
|
|
68
70
|
* Attach to an already-running Node process via `SIGUSR1` + CDP, capturing
|