chore: add temporary P2 child debug channel for acceptance diagnosis
This commit is contained in:
@@ -776,6 +776,7 @@ async function writeInstallationFiles(ctx) {
|
||||
},
|
||||
"workspace-maintenance": {
|
||||
image: ctx.coreImageTag,
|
||||
environment: { P2_CHILD_DEBUG: "1" },
|
||||
extra_hosts: ["host.docker.internal:host-gateway"],
|
||||
},
|
||||
qdrant: {
|
||||
|
||||
@@ -249,8 +249,15 @@ function createProductionService(): WorkspacePreprocessingService {
|
||||
let stderr = "";
|
||||
child.stdout?.on("data", (chunk: Buffer) => { stdout += chunk.toString("utf8"); });
|
||||
child.stderr?.on("data", (chunk: Buffer) => { stderr += chunk.toString("utf8"); });
|
||||
child.on("close", (code) => resolve({ exitCode: code ?? 0, stdout, stderr }));
|
||||
child.on("error", (error) => resolve({ exitCode: 1, stdout, stderr: String(error.message) }));
|
||||
child.on("close", (code) => {
|
||||
const capped = { exitCode: code ?? 0, stdout, stderr: stderr.slice(0, 64 * 1024) };
|
||||
if (process.env.P2_CHILD_DEBUG === "1" && (code ?? 0) !== 0) {
|
||||
capped.stdout = stdout.slice(0, 4096);
|
||||
capped.stderr = stderr.slice(0, 4096);
|
||||
}
|
||||
resolve(capped);
|
||||
});
|
||||
child.on("error", (error) => resolve({ exitCode: 1, stdout, stderr: String(error.message).slice(0, 4096) }));
|
||||
});
|
||||
} finally {
|
||||
closeSync(configFd);
|
||||
|
||||
@@ -427,7 +427,13 @@ export class WorkspacePreprocessingService {
|
||||
|
||||
private async runJsonStage(runtime: ActiveRuntime, argv: string[]): Promise<Record<string, unknown>> {
|
||||
const result = await this.deps.runChild({ argv, configPath: runtime.configLease.path });
|
||||
if (result.exitCode !== 0) throw new Error("workspace child failed");
|
||||
if (result.exitCode !== 0) {
|
||||
if (process.env.P2_CHILD_DEBUG === "1") {
|
||||
const detail = `${result.stderr ?? ""}${result.stdout ?? ""}`.replace(/[\r\n]+/g, " ").slice(0, 2048);
|
||||
throw new Error(`workspace child failed: ${detail}`);
|
||||
}
|
||||
throw new Error("workspace child failed");
|
||||
}
|
||||
return JSON.parse(result.stdout) as Record<string, unknown>;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user