Make "insufficient resources" reason more specific

This commit is contained in:
Henry Mercer
2026-03-03 17:21:59 +01:00
parent 0158d05946
commit 9f77ff18bb
4 changed files with 29 additions and 25 deletions
+8 -7
View File
@@ -106447,14 +106447,14 @@ async function runnerHasSufficientMemory(codeql, ramInput, logger) {
);
return true;
}
async function runnerSupportsOverlayAnalysis(codeql, diskUsage, ramInput, logger, useV2ResourceChecks) {
async function getResourceDisabledReason(codeql, diskUsage, ramInput, logger, useV2ResourceChecks) {
if (!runnerHasSufficientDiskSpace(diskUsage, logger, useV2ResourceChecks)) {
return false;
return "insufficient-disk-space" /* InsufficientDiskSpace */;
}
if (!await runnerHasSufficientMemory(codeql, ramInput, logger)) {
return false;
return "insufficient-memory" /* InsufficientMemory */;
}
return true;
return void 0;
}
async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, buildMode, ramInput, codeScanningConfig, repositoryProperties, gitVersion, logger) {
let overlayDatabaseMode = "none" /* None */;
@@ -106489,15 +106489,16 @@ async function getOverlayDatabaseMode(codeql, features, languages, sourceRoot, b
"overlay_analysis_status_check" /* OverlayAnalysisStatusCheck */
);
const diskUsage = performResourceChecks || checkOverlayStatus ? await checkDiskUsage(logger) : void 0;
if (performResourceChecks && !await runnerSupportsOverlayAnalysis(
let resourceDisabledReason;
if (performResourceChecks && (resourceDisabledReason = await getResourceDisabledReason(
codeql,
diskUsage,
ramInput,
logger,
useV2ResourceChecks
)) {
)) !== void 0) {
overlayDatabaseMode = "none" /* None */;
disabledReason = "insufficient-resources" /* InsufficientResources */;
disabledReason = resourceDisabledReason;
} else if (checkOverlayStatus && diskUsage === void 0) {
logger.warning(
`Unable to determine disk usage, therefore setting overlay database mode to ${"none" /* None */}.`
+8 -8
View File
@@ -1234,7 +1234,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientDiskSpace,
},
);
@@ -1253,7 +1253,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientDiskSpace,
},
);
@@ -1298,7 +1298,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientDiskSpace,
},
);
@@ -1342,7 +1342,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientDiskSpace,
},
);
@@ -1361,7 +1361,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientMemory,
},
);
@@ -1638,7 +1638,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientDiskSpace,
},
);
@@ -1679,7 +1679,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientDiskSpace,
},
);
@@ -1698,7 +1698,7 @@ test(
{
overlayDatabaseMode: OverlayDatabaseMode.None,
useOverlayDatabaseCaching: false,
disabledReason: OverlayDisabledReason.InsufficientResources,
disabledReason: OverlayDisabledReason.InsufficientMemory,
},
);
+9 -8
View File
@@ -759,20 +759,20 @@ async function runnerHasSufficientMemory(
* Checks if the runner supports overlay analysis based on available disk space
* and the maximum memory CodeQL will be allowed to use.
*/
async function runnerSupportsOverlayAnalysis(
async function getResourceDisabledReason(
codeql: CodeQL,
diskUsage: DiskUsage | undefined,
ramInput: string | undefined,
logger: Logger,
useV2ResourceChecks: boolean,
): Promise<boolean> {
): Promise<OverlayDisabledReason | undefined> {
if (!runnerHasSufficientDiskSpace(diskUsage, logger, useV2ResourceChecks)) {
return false;
return OverlayDisabledReason.InsufficientDiskSpace;
}
if (!(await runnerHasSufficientMemory(codeql, ramInput, logger))) {
return false;
return OverlayDisabledReason.InsufficientMemory;
}
return true;
return undefined;
}
/**
@@ -860,18 +860,19 @@ export async function getOverlayDatabaseMode(
performResourceChecks || checkOverlayStatus
? await checkDiskUsage(logger)
: undefined;
let resourceDisabledReason: OverlayDisabledReason | undefined;
if (
performResourceChecks &&
!(await runnerSupportsOverlayAnalysis(
(resourceDisabledReason = await getResourceDisabledReason(
codeql,
diskUsage,
ramInput,
logger,
useV2ResourceChecks,
))
)) !== undefined
) {
overlayDatabaseMode = OverlayDatabaseMode.None;
disabledReason = OverlayDisabledReason.InsufficientResources;
disabledReason = resourceDisabledReason;
} else if (checkOverlayStatus && diskUsage === undefined) {
logger.warning(
`Unable to determine disk usage, therefore setting overlay database mode to ${OverlayDatabaseMode.None}.`,
+4 -2
View File
@@ -24,8 +24,10 @@ export enum OverlayDisabledReason {
IncompatibleCodeQl = "incompatible-codeql",
/** The Git version could not be determined or is too old. */
IncompatibleGit = "incompatible-git",
/** The runner does not have enough disk space or memory. */
InsufficientResources = "insufficient-resources",
/** The runner does not have enough disk space to perform overlay analysis. */
InsufficientDiskSpace = "insufficient-disk-space",
/** The runner does not have enough memory to perform overlay analysis. */
InsufficientMemory = "insufficient-memory",
/** The source root is not inside a git repository. */
NoGitRoot = "no-git-root",
/** Overlay analysis was skipped because it previously failed with similar hardware resources. */