Skip to content

Bump the windows-drivers CodeQL pack to 1.10.0 - #54

Closed
Chuccle wants to merge 3 commits into
masterfrom
chore/codeql-pack-1.10.0
Closed

Chuccle wants to merge 3 commits into
masterfrom
chore/codeql-pack-1.10.0

Conversation

@Chuccle

@Chuccle Chuccle commented Aug 22, 2026

Copy link
Copy Markdown
Owner

Pinned at 1.1.0 and well behind. Pinning itself is right -- a pack release must not silently change what a scheduled scan reports -- but a pin still has to be reviewed rather than frozen, and this is the pack carrying the driver-specific IRQL and annotation queries, so a stale one is lost coverage on exactly the class of bug hardest to find any other way.

The previous triage (0 IRQL findings, 31 own-code hits all dismissed as false positives with reasons) will need redoing against the new queries rather than assuming those verdicts still hold.

@Chuccle
Chuccle force-pushed the chore/codeql-pack-1.10.0 branch 2 times, most recently from 42576d7 to a99159b Compare August 23, 2026 02:25
CodeQL has been failing every scheduled run on master with
error C1041: cannot open program database ... if multiple CL.EXE write to
the same .PDB file. Two independent causes, and fixing only the first
leaves it red.

Across projects: all seven sandbox targets defaulted IntDir to
$(Platform)\$(Configuration)\ beside the project, so their object files and
one shared vc*.pdb landed in the same folder. MSBuild has been saying so on
every build as MSB8028, "can lead to incorrect clean and rebuild behavior".
Each target now gets its own directory.

Within a project: every sandbox target mixes C and C++ sources, and
MSBuild compiles the two groups in separate CL.EXE invocations because
their command lines differ. Both write the project PDB, so they race and
one loses -- the same error, one level down. /FS is what the error message
itself prescribes.

Why it looked intermittent, and why nobody saw it locally: the second race
needs two language groups compiling at once, which normally only happens on
a full rebuild, and build.yml plus Invoke-BlorgChecks.ps1 both build
serially. codeql.yml is the only thing passing /m. So a warm incremental
tree stayed green while CI and any fresh checkout failed.

Verified in a throwaway worktree, which is the condition that reproduces
it -- a full rebuild with nothing cached. Before: exit -1, C1041. After,
both the Build tier and the exact CI command (msbuild BlorgFS.sln
/p:Configuration=Release /p:Platform=x64 /m) exit 0 with zero C1041 and
zero MSB8028.

Not a consequence of the query-pack bump. It predates it; that bump's pull
request is simply the first thing that ever ran the workflow.
The workflow is schedule-only, and scheduled workflows run only on the
default branch. So the one change that decides what CodeQL reports -- a
query-pack pin in .github/codeql/codeql-config.yml -- could only ever be
merged unrun, with the first evidence that it builds, resolves and reports
arriving the following Saturday, on master.

Two triggers fix that. A pull request touching this workflow or
.github/codeql/ runs the analysis it is changing, which is precisely when a
run is worth paying for. workflow_dispatch covers re-scans on demand --
after a pack bump, or after a batch of fixes -- instead of a seven-day
wait.

Neither makes CodeQL a per-push gate. PREfast already runs on every
build.yml push and PR, which is why this was weekly to begin with.

README gains a CI section, since when each of the three workflows runs, and
why they are split that way, was previously only discoverable by reading
three YAML files.
Pinned at 1.1.0 and well behind. Pinning itself is right -- a pack release
must not silently change what a scheduled scan reports -- but a pin still
has to be reviewed rather than frozen, and this is the pack carrying the
driver-specific IRQL and annotation queries, so a stale one is lost
coverage on exactly the class of bug hardest to find any other way.

Ordered after the trigger change on purpose: with it in place, the pull
request carrying this bump runs the analysis under the new pack rather
than merging it unverified.

The previous triage (0 IRQL findings, 31 own-code hits all dismissed as
false positives with reasons) will need redoing against the new queries
rather than assuming those verdicts still hold.
@Chuccle
Chuccle force-pushed the chore/codeql-pack-1.10.0 branch from a99159b to fa1ce1a Compare August 23, 2026 02:42
@Chuccle Chuccle closed this Aug 23, 2026
@Chuccle
Chuccle deleted the chore/codeql-pack-1.10.0 branch August 23, 2026 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant