From c0369726eea406aff976ade45ef6382836cbbdaa Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Tue, 22 Sep 2026 18:43:26 +0100 Subject: [PATCH] Wrap JSON parse errors in `getTracerConfigForCluster` with context --- lib/entry-points.js | 24 +++++++++++++----------- src/tracer-config.ts | 26 ++++++++++++++------------ 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/lib/entry-points.js b/lib/entry-points.js index 677848bf7..d1eda854f 100644 --- a/lib/entry-points.js +++ b/lib/entry-points.js @@ -152821,18 +152821,20 @@ async function endTracingForCluster(codeql, config, logger) { } } async function getTracerConfigForCluster(config) { - const tracingEnvVariables = JSON.parse( - fs15.readFileSync( - path14.resolve( - config.dbLocation, - "temp/tracingEnvironment/start-tracing.json" - ), - "utf8" - ) + const filePath = path14.resolve( + config.dbLocation, + "temp/tracingEnvironment/start-tracing.json" ); - return { - env: tracingEnvVariables - }; + try { + const tracingEnvVariables = JSON.parse(fs15.readFileSync(filePath, "utf8")); + return { + env: tracingEnvVariables + }; + } catch (err) { + throw new Error( + `Failed to parse tracing environment from '${filePath}': ${getErrorMessage(err)}` + ); + } } async function getCombinedTracerConfig(codeql, config) { if (!await shouldEnableIndirectTracing(codeql, config)) { diff --git a/src/tracer-config.ts b/src/tracer-config.ts index d786d4651..fb3a0a05b 100644 --- a/src/tracer-config.ts +++ b/src/tracer-config.ts @@ -4,7 +4,7 @@ import * as path from "path"; import { type CodeQL } from "./codeql"; import { type Config } from "./config-utils"; import { Logger } from "./logging"; -import { asyncSome, BuildMode } from "./util"; +import { asyncSome, BuildMode, getErrorMessage } from "./util"; export type TracerConfig = { env: { [key: string]: string }; @@ -79,18 +79,20 @@ export async function endTracingForCluster( async function getTracerConfigForCluster( config: Config, ): Promise { - const tracingEnvVariables = JSON.parse( - fs.readFileSync( - path.resolve( - config.dbLocation, - "temp/tracingEnvironment/start-tracing.json", - ), - "utf8", - ), + const filePath = path.resolve( + config.dbLocation, + "temp/tracingEnvironment/start-tracing.json", ); - return { - env: tracingEnvVariables, - }; + try { + const tracingEnvVariables = JSON.parse(fs.readFileSync(filePath, "utf8")); + return { + env: tracingEnvVariables, + }; + } catch (err) { + throw new Error( + `Failed to parse tracing environment from '${filePath}': ${getErrorMessage(err)}`, + ); + } } export async function getCombinedTracerConfig(