From 4f746e4a60b95e41fe6c91e3f14806cd10a16621 Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Tue, 18 Nov 2025 08:11:04 +0100 Subject: [PATCH 1/4] Overlay: Fall back to full analysis if runner disk space is low --- lib/analyze-action-post.js | 2 + lib/analyze-action.js | 2 + lib/autobuild-action.js | 2 + lib/init-action-post.js | 2 + lib/init-action.js | 44 ++++++++----- lib/resolve-environment-action.js | 2 + lib/setup-codeql-action.js | 2 + lib/start-proxy-action-post.js | 2 + lib/start-proxy-action.js | 2 + lib/upload-lib.js | 2 + lib/upload-sarif-action-post.js | 2 + lib/upload-sarif-action.js | 2 + src/config-utils.test.ts | 100 ++++++++++++++++++++++++++++++ src/config-utils.ts | 65 +++++++++++++------ 14 files changed, 196 insertions(+), 35 deletions(-) diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index d815da082f..3dcda989f1 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -120102,6 +120102,8 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 5dcfd5062e..11b32eac9a 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -89370,6 +89370,8 @@ async function cachePrefix(codeql, language) { } // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index 2655e43157..0a56265755 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -84416,6 +84416,8 @@ var GitHubFeatureFlags = class { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/init-action-post.js b/lib/init-action-post.js index c238f7d069..6ab23eb5a7 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -123766,6 +123766,8 @@ ${jsonContents}` var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/init-action.js b/lib/init-action.js index 6de0e4e2db..0630127df0 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -86653,6 +86653,8 @@ async function cachePrefix(codeql, language) { } // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; async function getSupportedLanguageMap(codeql, logger) { const resolveSupportedLanguagesUsingCli = await codeql.supportsFeature( "builtinExtractorsSpecifyDefaultQueries" /* BuiltinExtractorsSpecifyDefaultQueries */ @@ -86918,24 +86920,34 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b logger.info( `Setting overlay database mode to ${overlayDatabaseMode} from the CODEQL_OVERLAY_DATABASE_MODE environment variable.` ); - } else if (await isOverlayAnalysisFeatureEnabled( - features, - codeql, - languages, - codeScanningConfig - )) { - if (isAnalyzingPullRequest()) { - overlayDatabaseMode = "overlay" /* Overlay */; - useOverlayDatabaseCaching = true; - logger.info( - `Setting overlay database mode to ${overlayDatabaseMode} with caching because we are analyzing a pull request.` - ); - } else if (await isAnalyzingDefaultBranch()) { - overlayDatabaseMode = "overlay-base" /* OverlayBase */; - useOverlayDatabaseCaching = true; + } else { + const diskUsage = await checkDiskUsage(logger); + if (diskUsage === void 0 || diskUsage.numAvailableBytes < OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES) { + const diskSpaceMb = diskUsage === void 0 ? 0 : diskUsage.numAvailableBytes / 1e6; + overlayDatabaseMode = "none" /* None */; + useOverlayDatabaseCaching = false; logger.info( - `Setting overlay database mode to ${overlayDatabaseMode} with caching because we are analyzing the default branch.` + `Setting overlay database mode to ${overlayDatabaseMode} due to insufficient disk space (${diskSpaceMb} MB).` ); + } else if (await isOverlayAnalysisFeatureEnabled( + features, + codeql, + languages, + codeScanningConfig + )) { + if (isAnalyzingPullRequest()) { + overlayDatabaseMode = "overlay" /* Overlay */; + useOverlayDatabaseCaching = true; + logger.info( + `Setting overlay database mode to ${overlayDatabaseMode} with caching because we are analyzing a pull request.` + ); + } else if (await isAnalyzingDefaultBranch()) { + overlayDatabaseMode = "overlay-base" /* OverlayBase */; + useOverlayDatabaseCaching = true; + logger.info( + `Setting overlay database mode to ${overlayDatabaseMode} with caching because we are analyzing the default branch.` + ); + } } } const nonOverlayAnalysis = { diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index 8a757d8c61..3cca7431d9 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -84142,6 +84142,8 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index 31f135f53c..0d0df74a44 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -84587,6 +84587,8 @@ var PACK_IDENTIFIER_PATTERN = (function() { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index 86991078ab..9377bcea4a 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -119508,6 +119508,8 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 3b6d4deca5..26d0fa13bd 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -100170,6 +100170,8 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/upload-lib.js b/lib/upload-lib.js index e9e0a6747c..be50f109aa 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -87226,6 +87226,8 @@ ${jsonContents}` var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index 96a6bc64be..af2299f7f1 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -119674,6 +119674,8 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index 6db9c67bdf..ea4b0e31b8 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -87307,6 +87307,8 @@ ${jsonContents}` var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, cpp: "overlay_analysis_cpp" /* OverlayAnalysisCpp */, diff --git a/src/config-utils.test.ts b/src/config-utils.test.ts index da58dd8b1b..b9407152b9 100644 --- a/src/config-utils.test.ts +++ b/src/config-utils.test.ts @@ -37,7 +37,9 @@ import { ConfigurationError, withTmpDir, BuildMode, + DiskUsage, } from "./util"; +import * as util from "./util"; setupTests(test); @@ -995,6 +997,7 @@ interface OverlayDatabaseModeTestSetup { codeqlVersion: string; gitRoot: string | undefined; codeScanningConfig: configUtils.UserConfig; + diskUsage: DiskUsage | undefined; } const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = { @@ -1007,6 +1010,10 @@ const defaultOverlayDatabaseModeTestSetup: OverlayDatabaseModeTestSetup = { codeqlVersion: CODEQL_OVERLAY_MINIMUM_VERSION, gitRoot: "/some/git/root", codeScanningConfig: {}, + diskUsage: { + numAvailableBytes: 50_000_000_000, + numTotalBytes: 100_000_000_000, + }, }; const getOverlayDatabaseModeMacro = test.macro({ @@ -1039,6 +1046,8 @@ const getOverlayDatabaseModeMacro = test.macro({ setup.overlayDatabaseEnvVar; } + sinon.stub(util, "checkDiskUsage").resolves(setup.diskUsage); + // Mock feature flags const features = createFeatures(setup.features); @@ -1196,6 +1205,45 @@ test( }, ); +test( + getOverlayDatabaseModeMacro, + "No overlay-base database on default branch if runner disk space is too low", + { + languages: [KnownLanguage.javascript], + features: [ + Feature.OverlayAnalysis, + Feature.OverlayAnalysisCodeScanningJavascript, + ], + isDefaultBranch: true, + diskUsage: { + numAvailableBytes: 1_000_000_000, + numTotalBytes: 100_000_000_000, + }, + }, + { + overlayDatabaseMode: OverlayDatabaseMode.None, + useOverlayDatabaseCaching: false, + }, +); + +test( + getOverlayDatabaseModeMacro, + "No overlay-base database on default branch if we can't determine runner disk space", + { + languages: [KnownLanguage.javascript], + features: [ + Feature.OverlayAnalysis, + Feature.OverlayAnalysisCodeScanningJavascript, + ], + isDefaultBranch: true, + diskUsage: undefined, + }, + { + overlayDatabaseMode: OverlayDatabaseMode.None, + useOverlayDatabaseCaching: false, + }, +); + test( getOverlayDatabaseModeMacro, "No overlay-base database on default branch when code-scanning feature enabled with disable-default-queries", @@ -1366,6 +1414,45 @@ test( }, ); +test( + getOverlayDatabaseModeMacro, + "No overlay analysis on PR if runner disk space is too low", + { + languages: [KnownLanguage.javascript], + features: [ + Feature.OverlayAnalysis, + Feature.OverlayAnalysisCodeScanningJavascript, + ], + isPullRequest: true, + diskUsage: { + numAvailableBytes: 1_000_000_000, + numTotalBytes: 100_000_000_000, + }, + }, + { + overlayDatabaseMode: OverlayDatabaseMode.None, + useOverlayDatabaseCaching: false, + }, +); + +test( + getOverlayDatabaseModeMacro, + "No overlay analysis on PR if we can't determine runner disk space", + { + languages: [KnownLanguage.javascript], + features: [ + Feature.OverlayAnalysis, + Feature.OverlayAnalysisCodeScanningJavascript, + ], + isPullRequest: true, + diskUsage: undefined, + }, + { + overlayDatabaseMode: OverlayDatabaseMode.None, + useOverlayDatabaseCaching: false, + }, +); + test( getOverlayDatabaseModeMacro, "No overlay analysis on PR when code-scanning feature enabled with disable-default-queries", @@ -1500,6 +1587,19 @@ test( }, ); +test( + getOverlayDatabaseModeMacro, + "Overlay PR analysis by env on a runner with low disk space", + { + overlayDatabaseEnvVar: "overlay", + diskUsage: { numAvailableBytes: 0, numTotalBytes: 100_000_000_000 }, + }, + { + overlayDatabaseMode: OverlayDatabaseMode.Overlay, + useOverlayDatabaseCaching: false, + }, +); + test( getOverlayDatabaseModeMacro, "Overlay PR analysis by feature flag", diff --git a/src/config-utils.ts b/src/config-utils.ts index fa88d4b4a5..6a1c40b13b 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -43,10 +43,22 @@ import { codeQlVersionAtLeast, cloneObject, isDefined, + checkDiskUsage, } from "./util"; export * from "./config/db-config"; +/** + * The minimum available disk space (in MB) required to perform overlay analysis. + * If the available disk space on the runner is below the threshold when deciding + * whether to perform overlay analysis, then the action will not perform overlay + * analysis unless overlay analysis has been explicitly enabled via environment + * variable. + */ +const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15000; +const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = + OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1_000_000; + export type RegistryConfigWithCredentials = RegistryConfigNoCredentials & { // Token to use when downloading packs from this registry. token: string; @@ -667,28 +679,43 @@ export async function getOverlayDatabaseMode( `Setting overlay database mode to ${overlayDatabaseMode} ` + "from the CODEQL_OVERLAY_DATABASE_MODE environment variable.", ); - } else if ( - await isOverlayAnalysisFeatureEnabled( - features, - codeql, - languages, - codeScanningConfig, - ) - ) { - if (isAnalyzingPullRequest()) { - overlayDatabaseMode = OverlayDatabaseMode.Overlay; - useOverlayDatabaseCaching = true; - logger.info( - `Setting overlay database mode to ${overlayDatabaseMode} ` + - "with caching because we are analyzing a pull request.", - ); - } else if (await isAnalyzingDefaultBranch()) { - overlayDatabaseMode = OverlayDatabaseMode.OverlayBase; - useOverlayDatabaseCaching = true; + } else { + const diskUsage = await checkDiskUsage(logger); + if ( + diskUsage === undefined || + diskUsage.numAvailableBytes < OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES + ) { + const diskSpaceMb = + diskUsage === undefined ? 0 : diskUsage.numAvailableBytes / 1_000_000; + overlayDatabaseMode = OverlayDatabaseMode.None; + useOverlayDatabaseCaching = false; logger.info( `Setting overlay database mode to ${overlayDatabaseMode} ` + - "with caching because we are analyzing the default branch.", + `due to insufficient disk space (${diskSpaceMb} MB).`, ); + } else if ( + await isOverlayAnalysisFeatureEnabled( + features, + codeql, + languages, + codeScanningConfig, + ) + ) { + if (isAnalyzingPullRequest()) { + overlayDatabaseMode = OverlayDatabaseMode.Overlay; + useOverlayDatabaseCaching = true; + logger.info( + `Setting overlay database mode to ${overlayDatabaseMode} ` + + "with caching because we are analyzing a pull request.", + ); + } else if (await isAnalyzingDefaultBranch()) { + overlayDatabaseMode = OverlayDatabaseMode.OverlayBase; + useOverlayDatabaseCaching = true; + logger.info( + `Setting overlay database mode to ${overlayDatabaseMode} ` + + "with caching because we are analyzing the default branch.", + ); + } } } From 726a2a01b88c9c985274879d4c22c454458ed57a Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Tue, 18 Nov 2025 15:37:27 +0100 Subject: [PATCH 2/4] Overlay: Increase disk storage threshold to 20GB --- lib/analyze-action-post.js | 2 +- lib/analyze-action.js | 2 +- lib/autobuild-action.js | 2 +- lib/init-action-post.js | 2 +- lib/init-action.js | 2 +- lib/resolve-environment-action.js | 2 +- lib/setup-codeql-action.js | 2 +- lib/start-proxy-action-post.js | 2 +- lib/start-proxy-action.js | 2 +- lib/upload-lib.js | 2 +- lib/upload-sarif-action-post.js | 2 +- lib/upload-sarif-action.js | 2 +- src/config-utils.ts | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index 3dcda989f1..de3b89b111 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -120102,7 +120102,7 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 11b32eac9a..d80524b30c 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -89370,7 +89370,7 @@ async function cachePrefix(codeql, language) { } // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index 0a56265755..e9807b9d69 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -84416,7 +84416,7 @@ var GitHubFeatureFlags = class { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 6ab23eb5a7..45f90f0358 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -123766,7 +123766,7 @@ ${jsonContents}` var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/init-action.js b/lib/init-action.js index 0630127df0..ea9246bb56 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -86653,7 +86653,7 @@ async function cachePrefix(codeql, language) { } // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; async function getSupportedLanguageMap(codeql, logger) { const resolveSupportedLanguagesUsingCli = await codeql.supportsFeature( diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index 3cca7431d9..8bfc24ca03 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -84142,7 +84142,7 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index 0d0df74a44..ccd2157ad7 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -84587,7 +84587,7 @@ var PACK_IDENTIFIER_PATTERN = (function() { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index 9377bcea4a..c22306a3b4 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -119508,7 +119508,7 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/start-proxy-action.js b/lib/start-proxy-action.js index 26d0fa13bd..e54c456eb5 100644 --- a/lib/start-proxy-action.js +++ b/lib/start-proxy-action.js @@ -100170,7 +100170,7 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/upload-lib.js b/lib/upload-lib.js index be50f109aa..3b951984b5 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -87226,7 +87226,7 @@ ${jsonContents}` var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index af2299f7f1..4c6f138026 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -119674,7 +119674,7 @@ var featureConfig = { var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index ea4b0e31b8..b6eaf19a0f 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -87307,7 +87307,7 @@ ${jsonContents}` var actionsCache2 = __toESM(require_cache3()); // src/config-utils.ts -var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15e3; +var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4; var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6; var OVERLAY_ANALYSIS_FEATURES = { actions: "overlay_analysis_actions" /* OverlayAnalysisActions */, diff --git a/src/config-utils.ts b/src/config-utils.ts index 6a1c40b13b..f910e5d909 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -55,7 +55,7 @@ export * from "./config/db-config"; * analysis unless overlay analysis has been explicitly enabled via environment * variable. */ -const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 15000; +const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 20000; const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1_000_000; From ed80d6e5e959958d907c93c7e350411df87b57aa Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Wed, 19 Nov 2025 07:54:05 +0100 Subject: [PATCH 3/4] Overlay: Reorder available disk space check --- lib/init-action.js | 14 +++++++------- src/config-utils.ts | 18 +++++++++--------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/init-action.js b/lib/init-action.js index ea9246bb56..dc49463d7a 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -86920,7 +86920,12 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b logger.info( `Setting overlay database mode to ${overlayDatabaseMode} from the CODEQL_OVERLAY_DATABASE_MODE environment variable.` ); - } else { + } else if (await isOverlayAnalysisFeatureEnabled( + features, + codeql, + languages, + codeScanningConfig + )) { const diskUsage = await checkDiskUsage(logger); if (diskUsage === void 0 || diskUsage.numAvailableBytes < OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES) { const diskSpaceMb = diskUsage === void 0 ? 0 : diskUsage.numAvailableBytes / 1e6; @@ -86929,12 +86934,7 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b logger.info( `Setting overlay database mode to ${overlayDatabaseMode} due to insufficient disk space (${diskSpaceMb} MB).` ); - } else if (await isOverlayAnalysisFeatureEnabled( - features, - codeql, - languages, - codeScanningConfig - )) { + } else { if (isAnalyzingPullRequest()) { overlayDatabaseMode = "overlay" /* Overlay */; useOverlayDatabaseCaching = true; diff --git a/src/config-utils.ts b/src/config-utils.ts index f910e5d909..03d88722fb 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -679,7 +679,14 @@ export async function getOverlayDatabaseMode( `Setting overlay database mode to ${overlayDatabaseMode} ` + "from the CODEQL_OVERLAY_DATABASE_MODE environment variable.", ); - } else { + } else if ( + await isOverlayAnalysisFeatureEnabled( + features, + codeql, + languages, + codeScanningConfig, + ) + ) { const diskUsage = await checkDiskUsage(logger); if ( diskUsage === undefined || @@ -693,14 +700,7 @@ export async function getOverlayDatabaseMode( `Setting overlay database mode to ${overlayDatabaseMode} ` + `due to insufficient disk space (${diskSpaceMb} MB).`, ); - } else if ( - await isOverlayAnalysisFeatureEnabled( - features, - codeql, - languages, - codeScanningConfig, - ) - ) { + } else { if (isAnalyzingPullRequest()) { overlayDatabaseMode = OverlayDatabaseMode.Overlay; useOverlayDatabaseCaching = true; From 4eccb3798e6657749ccc8a7b4813a58748ec16d5 Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Wed, 19 Nov 2025 07:59:59 +0100 Subject: [PATCH 4/4] Overlay: Round available disk space in MB --- lib/init-action.js | 2 +- src/config-utils.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/init-action.js b/lib/init-action.js index dc49463d7a..ff9b723332 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -86928,7 +86928,7 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b )) { const diskUsage = await checkDiskUsage(logger); if (diskUsage === void 0 || diskUsage.numAvailableBytes < OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES) { - const diskSpaceMb = diskUsage === void 0 ? 0 : diskUsage.numAvailableBytes / 1e6; + const diskSpaceMb = diskUsage === void 0 ? 0 : Math.round(diskUsage.numAvailableBytes / 1e6); overlayDatabaseMode = "none" /* None */; useOverlayDatabaseCaching = false; logger.info( diff --git a/src/config-utils.ts b/src/config-utils.ts index 03d88722fb..2572573448 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -693,7 +693,9 @@ export async function getOverlayDatabaseMode( diskUsage.numAvailableBytes < OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES ) { const diskSpaceMb = - diskUsage === undefined ? 0 : diskUsage.numAvailableBytes / 1_000_000; + diskUsage === undefined + ? 0 + : Math.round(diskUsage.numAvailableBytes / 1_000_000); overlayDatabaseMode = OverlayDatabaseMode.None; useOverlayDatabaseCaching = false; logger.info(