From 4b0172d9c2e8e400db6491a24b3d46cf0db3689d Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 11 Apr 2024 14:18:19 +0100 Subject: [PATCH] Store diagnostics in memory until the database is available --- lib/diagnostics.js | 54 +++++++++++++++++++------- lib/diagnostics.js.map | 2 +- lib/init-action.js | 3 ++ lib/init-action.js.map | 2 +- src/diagnostics.ts | 86 ++++++++++++++++++++++++++++++++---------- src/init-action.ts | 6 ++- 6 files changed, 118 insertions(+), 35 deletions(-) diff --git a/lib/diagnostics.js b/lib/diagnostics.js index 7030624db6..e285e792a2 100644 --- a/lib/diagnostics.js +++ b/lib/diagnostics.js @@ -3,11 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.addDiagnostic = exports.makeDiagnostic = void 0; +exports.flushDiagnostics = exports.addDiagnostic = exports.makeDiagnostic = void 0; const fs_1 = require("fs"); const path_1 = __importDefault(require("path")); const logging_1 = require("./logging"); const util_1 = require("./util"); +/** A list of diagnostics which have not yet been written to disk. */ +let unwrittenDiagnostics = []; /** * Constructs a new diagnostic message with the specified id and name, as well as optional additional data. * @@ -25,30 +27,56 @@ function makeDiagnostic(id, name, data = undefined) { } exports.makeDiagnostic = makeDiagnostic; /** - * Writes the given diagnostic to the database. + * Adds the given diagnostic to the database. If the database does not yet exist, + * the diagnostic will be written to it once it has been created. * * @param config The configuration that tells us where to store the diagnostic. + * @param language The language which the diagnostic is for. * @param diagnostic The diagnostic message to add to the database. */ function addDiagnostic(config, language, diagnostic) { const logger = (0, logging_1.getActionsLogger)(); const databasePath = (0, util_1.getCodeQLDatabasePath)(config, language); - const diagnosticsPath = path_1.default.resolve(databasePath, "diagnostic", "codeql-action"); - // Check that the database exists before writing to it. + // Check that the database exists before writing to it. If the database does not yet exist, + // store the diagnostic in memory and write it later. if ((0, fs_1.existsSync)(databasePath)) { - try { - // Create the directory if it doesn't exist yet. - (0, fs_1.mkdirSync)(diagnosticsPath, { recursive: true }); - const jsonPath = path_1.default.resolve(diagnosticsPath, `codeql-action-${diagnostic.timestamp}.json`); - (0, fs_1.writeFileSync)(jsonPath, JSON.stringify(diagnostic)); - } - catch (err) { - logger.warning(`Unable to write diagnostic message to database: ${err}`); - } + writeDiagnostic(config, language, diagnostic); } else { logger.info(`Writing a diagnostic for ${language}, but the database at ${databasePath} does not exist yet.`); + unwrittenDiagnostics.push({ diagnostic, language }); } } exports.addDiagnostic = addDiagnostic; +/** + * Writes the given diagnostic to the database. + * + * @param config The configuration that tells us where to store the diagnostic. + * @param language The language which the diagnostic is for. + * @param diagnostic The diagnostic message to add to the database. + */ +function writeDiagnostic(config, language, diagnostic) { + const logger = (0, logging_1.getActionsLogger)(); + const diagnosticsPath = path_1.default.resolve((0, util_1.getCodeQLDatabasePath)(config, language), "diagnostic", "codeql-action"); + try { + // Create the directory if it doesn't exist yet. + (0, fs_1.mkdirSync)(diagnosticsPath, { recursive: true }); + const jsonPath = path_1.default.resolve(diagnosticsPath, `codeql-action-${diagnostic.timestamp}.json`); + (0, fs_1.writeFileSync)(jsonPath, JSON.stringify(diagnostic)); + } + catch (err) { + logger.warning(`Unable to write diagnostic message to database: ${err}`); + } +} +/** Writes all unwritten diagnostics to disk. */ +function flushDiagnostics(config) { + const logger = (0, logging_1.getActionsLogger)(); + logger.info(`Writing ${unwrittenDiagnostics.length} diagnostic(s) to database.`); + for (const unwritten of unwrittenDiagnostics) { + writeDiagnostic(config, unwritten.language, unwritten.diagnostic); + } + // Reset the unwritten diagnostics array. + unwrittenDiagnostics = []; +} +exports.flushDiagnostics = flushDiagnostics; //# sourceMappingURL=diagnostics.js.map \ No newline at end of file diff --git a/lib/diagnostics.js.map b/lib/diagnostics.js.map index 4f40b3d32e..2e812b4a62 100644 --- a/lib/diagnostics.js.map +++ b/lib/diagnostics.js.map @@ -1 +1 @@ -{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA0D;AAC1D,gDAAwB;AAIxB,uCAA6C;AAC7C,iCAA+C;AAmD/C;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC5B,EAAU,EACV,IAAY,EACZ,OAA+C,SAAS;IAExD,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtD,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;KACtC,CAAC;AACJ,CAAC;AAVD,wCAUC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAC3B,MAAc,EACd,QAAkB,EAClB,UAA6B;IAE7B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,MAAM,YAAY,GAAG,IAAA,4BAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAClC,YAAY,EACZ,YAAY,EACZ,eAAe,CAChB,CAAC;IAEF,uDAAuD;IACvD,IAAI,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,gDAAgD;YAChD,IAAA,cAAS,EAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhD,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAC3B,eAAe,EACf,iBAAiB,UAAU,CAAC,SAAS,OAAO,CAC7C,CAAC;YAEF,IAAA,kBAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,OAAO,CAAC,mDAAmD,GAAG,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,4BAA4B,QAAQ,yBAAyB,YAAY,sBAAsB,CAChG,CAAC;IACJ,CAAC;AACH,CAAC;AAjCD,sCAiCC"} \ No newline at end of file +{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":";;;;;;AAAA,2BAA0D;AAC1D,gDAAwB;AAIxB,uCAA6C;AAC7C,iCAA+C;AA2D/C,qEAAqE;AACrE,IAAI,oBAAoB,GAA0B,EAAE,CAAC;AAErD;;;;;;;GAOG;AACH,SAAgB,cAAc,CAC5B,EAAU,EACV,IAAY,EACZ,OAA+C,SAAS;IAExD,OAAO;QACL,GAAG,IAAI;QACP,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACtD,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;KACtC,CAAC;AACJ,CAAC;AAVD,wCAUC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAC3B,MAAc,EACd,QAAkB,EAClB,UAA6B;IAE7B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,MAAM,YAAY,GAAG,IAAA,4BAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE7D,2FAA2F;IAC3F,qDAAqD;IACrD,IAAI,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CACT,4BAA4B,QAAQ,yBAAyB,YAAY,sBAAsB,CAChG,CAAC;QAEF,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAnBD,sCAmBC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,MAAc,EACd,QAAkB,EAClB,UAA6B;IAE7B,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAClC,IAAA,4BAAqB,EAAC,MAAM,EAAE,QAAQ,CAAC,EACvC,YAAY,EACZ,eAAe,CAChB,CAAC;IAEF,IAAI,CAAC;QACH,gDAAgD;QAChD,IAAA,cAAS,EAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAC3B,eAAe,EACf,iBAAiB,UAAU,CAAC,SAAS,OAAO,CAC7C,CAAC;QAEF,IAAA,kBAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,OAAO,CAAC,mDAAmD,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,MAAM,MAAM,GAAG,IAAA,0BAAgB,GAAE,CAAC;IAClC,MAAM,CAAC,IAAI,CACT,WAAW,oBAAoB,CAAC,MAAM,6BAA6B,CACpE,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,oBAAoB,EAAE,CAAC;QAC7C,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IAED,yCAAyC;IACzC,oBAAoB,GAAG,EAAE,CAAC;AAC5B,CAAC;AAZD,4CAYC"} \ No newline at end of file diff --git a/lib/init-action.js b/lib/init-action.js index 91bdfa5cf9..bce1335977 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -312,6 +312,9 @@ async function run() { core.exportVariable(key, value); } } + // Write diagnostics to the database that we previously stored in memory because the database + // did not exist until now. + (0, diagnostics_1.flushDiagnostics)(config); core.setOutput("codeql-path", config.codeQLCmd); } catch (unwrappedError) { diff --git a/lib/init-action.js.map b/lib/init-action.js.map index b09207dbae..11b2ea561d 100644 --- a/lib/init-action.js.map +++ b/lib/init-action.js.map @@ -1 +1 @@ -{"version":3,"file":"init-action.js","sourceRoot":"","sources":["../src/init-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"init-action.js","sourceRoot":"","sources":["../src/init-action.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/diagnostics.ts b/src/diagnostics.ts index e7ece8f01c..3dd7f66ecf 100644 --- a/src/diagnostics.ts +++ b/src/diagnostics.ts @@ -55,6 +55,17 @@ export interface DiagnosticMessage { attributes?: { [key: string]: any }; } +/** Represents a diagnostic message that has not yet been written to the database. */ +interface UnwrittenDiagnostic { + /** The diagnostic message that has not yet been written. */ + diagnostic: DiagnosticMessage; + /** The language the diagnostic is for. */ + language: Language; +} + +/** A list of diagnostics which have not yet been written to disk. */ +let unwrittenDiagnostics: UnwrittenDiagnostic[] = []; + /** * Constructs a new diagnostic message with the specified id and name, as well as optional additional data. * @@ -76,9 +87,11 @@ export function makeDiagnostic( } /** - * Writes the given diagnostic to the database. + * Adds the given diagnostic to the database. If the database does not yet exist, + * the diagnostic will be written to it once it has been created. * * @param config The configuration that tells us where to store the diagnostic. + * @param language The language which the diagnostic is for. * @param diagnostic The diagnostic message to add to the database. */ export function addDiagnostic( @@ -88,30 +101,65 @@ export function addDiagnostic( ) { const logger = getActionsLogger(); const databasePath = getCodeQLDatabasePath(config, language); + + // Check that the database exists before writing to it. If the database does not yet exist, + // store the diagnostic in memory and write it later. + if (existsSync(databasePath)) { + writeDiagnostic(config, language, diagnostic); + } else { + logger.info( + `Writing a diagnostic for ${language}, but the database at ${databasePath} does not exist yet.`, + ); + + unwrittenDiagnostics.push({ diagnostic, language }); + } +} + +/** + * Writes the given diagnostic to the database. + * + * @param config The configuration that tells us where to store the diagnostic. + * @param language The language which the diagnostic is for. + * @param diagnostic The diagnostic message to add to the database. + */ +function writeDiagnostic( + config: Config, + language: Language, + diagnostic: DiagnosticMessage, +) { + const logger = getActionsLogger(); const diagnosticsPath = path.resolve( - databasePath, + getCodeQLDatabasePath(config, language), "diagnostic", "codeql-action", ); - // Check that the database exists before writing to it. - if (existsSync(databasePath)) { - try { - // Create the directory if it doesn't exist yet. - mkdirSync(diagnosticsPath, { recursive: true }); - - const jsonPath = path.resolve( - diagnosticsPath, - `codeql-action-${diagnostic.timestamp}.json`, - ); + try { + // Create the directory if it doesn't exist yet. + mkdirSync(diagnosticsPath, { recursive: true }); - writeFileSync(jsonPath, JSON.stringify(diagnostic)); - } catch (err) { - logger.warning(`Unable to write diagnostic message to database: ${err}`); - } - } else { - logger.info( - `Writing a diagnostic for ${language}, but the database at ${databasePath} does not exist yet.`, + const jsonPath = path.resolve( + diagnosticsPath, + `codeql-action-${diagnostic.timestamp}.json`, ); + + writeFileSync(jsonPath, JSON.stringify(diagnostic)); + } catch (err) { + logger.warning(`Unable to write diagnostic message to database: ${err}`); } } + +/** Writes all unwritten diagnostics to disk. */ +export function flushDiagnostics(config: Config) { + const logger = getActionsLogger(); + logger.info( + `Writing ${unwrittenDiagnostics.length} diagnostic(s) to database.`, + ); + + for (const unwritten of unwrittenDiagnostics) { + writeDiagnostic(config, unwritten.language, unwritten.diagnostic); + } + + // Reset the unwritten diagnostics array. + unwrittenDiagnostics = []; +} diff --git a/src/init-action.ts b/src/init-action.ts index c5f0984ffb..1aa540d8fa 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -16,7 +16,7 @@ import { import { getGitHubVersion } from "./api-client"; import { CodeQL } from "./codeql"; import * as configUtils from "./config-utils"; -import { addDiagnostic, makeDiagnostic } from "./diagnostics"; +import { addDiagnostic, flushDiagnostics, makeDiagnostic } from "./diagnostics"; import { EnvVar } from "./environment"; import { Feature, Features } from "./feature-flags"; import { checkInstallPython311, initCodeQL, initConfig, runInit } from "./init"; @@ -522,6 +522,10 @@ async function run() { } } + // Write diagnostics to the database that we previously stored in memory because the database + // did not exist until now. + flushDiagnostics(config); + core.setOutput("codeql-path", config.codeQLCmd); } catch (unwrappedError) { const error = wrapError(unwrappedError);