Skip to content

Commit 4f61ea0

Browse files
proggeramlugRalph Küpper
andauthored
fix(ci): give the statepoints root-dominance job the node setup it needs (#8172)
`gc-root-dominance-statepoints` has failed on every `main` run and every PR since #8084, with "node_modules/zod/src/index.ts is missing". #8084 added the dependency-scale native corpus to this job. That corpus compiles `node_modules/zod`, but `actions/setup-node` and `npm ci` live only in the sibling `gc-root-dominance` job, so this one died in setup before the checker ran. The arm that was dark is the one covering the SHIPPED lowering — statepoints are the default on aarch64 and x86-64 — while its green sibling covers the shadow frame. The gate looked like it was watching the default configuration and was watching nothing. Matches the sibling exactly: setup-node@v7 pinned by .node-version, `npm ci --ignore-scripts --no-audit --no-fund`. Co-authored-by: Ralph Küpper <ralph@skelpo.com>
1 parent 0eccf79 commit 4f61ea0

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

.github/workflows/gc-root-dominance.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,20 @@ jobs:
473473
- name: Immovable-source exemptions must still hold
474474
run: python3 scripts/gc_root_dominance_check.py --audit-immovable-sources
475475

476+
# #8170: the dependency-scale corpus this job runs (added by #8084)
477+
# compiles `node_modules/zod`, so it needs the same node setup its
478+
# sibling job has. Without these two steps the job dies in setup with
479+
# "node_modules/zod/src/index.ts is missing" and never reaches the
480+
# checker — which meant the arm covering the SHIPPED lowering
481+
# (statepoints are the default on aarch64 and x86-64) reported nothing
482+
# at all, while its shadow-frame sibling stayed green and made the gate
483+
# look healthy.
484+
- uses: actions/setup-node@v7
485+
with:
486+
node-version-file: .node-version
487+
- name: Install the npm dependencies the dep corpus compiles
488+
run: npm ci --ignore-scripts --no-audit --no-fund
489+
476490
- name: Install Rust toolchain
477491
uses: dtolnay/rust-toolchain@stable
478492
# This also puts a matched LLVM 22 `opt` on disk and exports
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
### Fixed
2+
3+
- **`gc-root-dominance-statepoints` could not run its checker at all**, and had
4+
failed on every `main` run and every PR since #8084 merged, with
5+
`node_modules/zod/src/index.ts is missing; run npm ci --ignore-scripts`.
6+
7+
#8084 added the dependency-scale native corpus to the **statepoints** job.
8+
That corpus compiles `node_modules/zod`, but the `actions/setup-node` and
9+
`npm ci` steps that provide it lived only in the sibling `gc-root-dominance`
10+
job. The statepoints job therefore died during setup, before the root-store
11+
dominance checker ran.
12+
13+
This is worse than a red X. The statepoints arm is the one covering the
14+
**shipped** lowering — RS4GC statepoints are the default on aarch64 and
15+
x86-64 — while the green sibling covers the shadow-frame arm. So for a day
16+
the gate looked like it was watching the default configuration and was
17+
watching nothing, and it red-lighted every open PR, which trains reviewers
18+
to ignore it. CLAUDE.md's hazards 2 and 4 at once.
19+
20+
The job now installs node the same way its sibling does, pinned by
21+
`.node-version`, with `--ignore-scripts` for the same reason.

0 commit comments

Comments
 (0)