Skip to content

Commit d76f393

Browse files
committed
Do not set --expect-discarded-cache on "cleanup-level: overlay"
When a user specifies "cleanup-level: overlay", it suggests that the user wishes to preserve the evaluation cache for future use. So in this case we should not set --expect-discarded-cache when running queries.
1 parent b2e6519 commit d76f393

File tree

5 files changed

+18
-15
lines changed

5 files changed

+18
-15
lines changed

src/analyze-action.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,12 +295,16 @@ async function run() {
295295
logger,
296296
);
297297

298+
const cleanupLevel =
299+
actionsUtil.getOptionalInput("cleanup-level") || "brutal";
300+
298301
if (actionsUtil.getRequiredInput("skip-queries") !== "true") {
299302
runStats = await runQueries(
300303
outputDir,
301304
memory,
302305
util.getAddSnippetsFlag(actionsUtil.getRequiredInput("add-snippets")),
303306
threads,
307+
cleanupLevel,
304308
diffRangePackDir,
305309
actionsUtil.getOptionalInput("category"),
306310
config,
@@ -309,12 +313,8 @@ async function run() {
309313
);
310314
}
311315

312-
if (actionsUtil.getOptionalInput("cleanup-level") !== "none") {
313-
await runCleanup(
314-
config,
315-
actionsUtil.getOptionalInput("cleanup-level") || "brutal",
316-
logger,
317-
);
316+
if (cleanupLevel !== "none") {
317+
await runCleanup(config, cleanupLevel, logger);
318318
}
319319

320320
const dbLocations: { [lang: string]: string } = {};

src/analyze.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ test("status report fields", async (t) => {
101101
memoryFlag,
102102
addSnippetsFlag,
103103
threadsFlag,
104+
"brutal",
104105
undefined,
105106
undefined,
106107
config,

src/analyze.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -548,27 +548,30 @@ export async function runQueries(
548548
memoryFlag: string,
549549
addSnippetsFlag: string,
550550
threadsFlag: string,
551+
cleanupLevel: string,
551552
diffRangePackDir: string | undefined,
552553
automationDetailsId: string | undefined,
553554
config: configUtils.Config,
554555
logger: Logger,
555556
features: FeatureEnablement,
556557
): Promise<QueriesStatusReport> {
557558
const statusReport: QueriesStatusReport = {};
559+
const queryFlags = [memoryFlag, threadsFlag];
560+
561+
if (cleanupLevel !== "overlay") {
562+
queryFlags.push("--expect-discarded-cache");
563+
}
558564

559565
statusReport.analysis_is_diff_informed = diffRangePackDir !== undefined;
560-
const dataExtensionFlags = diffRangePackDir
561-
? [
562-
`--additional-packs=${diffRangePackDir}`,
563-
"--extension-packs=codeql-action/pr-diff-range",
564-
]
565-
: [];
566+
if (diffRangePackDir) {
567+
queryFlags.push(`--additional-packs=${diffRangePackDir}`);
568+
queryFlags.push("--extension-packs=codeql-action/pr-diff-range");
569+
}
566570
const sarifRunPropertyFlag = diffRangePackDir
567571
? "--sarif-run-property=incrementalMode=diff-informed"
568572
: undefined;
569573

570574
const codeql = await getCodeQL(config.codeQLCmd);
571-
const queryFlags = [memoryFlag, threadsFlag, ...dataExtensionFlags];
572575

573576
for (const language of config.languages) {
574577
try {

src/codeql.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ test("runTool recognizes fatal internal errors", async (t) => {
957957
await codeqlObject.databaseRunQueries(stubConfig.dbLocation, []),
958958
{
959959
instanceOf: CliError,
960-
message: `Encountered a fatal error while running "codeql-for-testing database run-queries --expect-discarded-cache --intra-layer-parallelism --min-disk-free=1024 -v". Exit code was 1 and error was: Oops! A fatal internal error occurred. Details:
960+
message: `Encountered a fatal error while running "codeql-for-testing database run-queries --intra-layer-parallelism --min-disk-free=1024 -v". Exit code was 1 and error was: Oops! A fatal internal error occurred. Details:
961961
com.semmle.util.exception.CatastrophicError: An error occurred while evaluating ControlFlowGraph::ControlFlow::Root.isRootOf/1#dispred#f610e6ed/2@86282cc8
962962
Severe disk cache trouble (corruption or out of space) at /home/runner/work/_temp/codeql_databases/go/db-go/default/cache/pages/28/33.pack: Failed to write item to disk. See the logs for more details.`,
963963
},

src/codeql.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -805,7 +805,6 @@ export async function getCodeQLForCmd(
805805
"run-queries",
806806
...flags,
807807
databasePath,
808-
"--expect-discarded-cache",
809808
"--intra-layer-parallelism",
810809
"--min-disk-free=1024", // Try to leave at least 1GB free
811810
"-v",

0 commit comments

Comments
 (0)