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

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,
},
);

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}.`,

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. */