You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
gc-native-roots.yml is listed in #7966 as having "NO successful post-merge run in the sampled window". Checking it, the window is not the limit:
gh run list --workflow=gc-native-roots.yml --status=success --limit 50
# (empty — all branches, all events)
It has never had a single successful run. This is a red gate, not a starved one, and it should be triaged separately from #7966's scheduling problem.
Evidence
Run 31405431962 (push/main, sha bf8af0e0f, 2026-08-10) — three of four arms fail, with three different root causes:
arm
result
cause
ubuntu-latest x86-64 ELF
success
—
ubuntu-24.04-arm aarch64 ELF
failure
exit 139 (SIGSEGV), then ::error::01_nursery_churn crashed under PERRY_STACKMAP_WALKER=verify
windows-latest x86-64 PE
failure
exit 101 (Rust panic), then exit 2
macos-14 aarch64 Mach-O
failure
gc_evacuation_liveness_assert.py: "the forced-evacuation arm evacuated NOTHING (0 copying minors, 0 objects copied)… No [gc-copy-minor] line at all — every collection in this run was a FULL cycle"
gc-native-roots-complete
failure
by design; requires every arm
It is also starved on top of that — the aggregator for that run only completed 2026-08-12T12:09Z, ~44h after creation. #7969 fixes the starvation; it does not touch any of the three failures above.
Why the macOS arm is worth looking at first
Its symptom — "every collection was a FULL cycle, zero copying minors" — is the same shape as #7965.
Flagging this as a hypothesis, not a conclusion: it cannot be the same bug. This run is at bf8af0e0f on 2026-08-10, two days before #7902 (1bd5eeb6b) merged. But "the collector stopped running copying minors" has now surfaced twice in three days from two different causes, and this arm has been sitting on the first instance unread since at least 08-10 because nobody was reading a gate that has never been green.
That is also a direct instance of CLAUDE.md hazard 4 wearing a new hat: the gate is genuinely red, reports red, and blocks nothing — it is not in branch protection's required contexts, so a red result is indistinguishable from the noise of a starved queue.
aarch64-linux SIGSEGV under PERRY_STACKMAP_WALKER=verify — a crash in the walker itself.
Windows panic (exit 101) — likely the most isolated.
Each is plausibly independent; they should probably not be fixed as one change.
Note on promotion
Once green, this is a candidate for branch protection — but per CLAUDE.md, run it once green first, then promote. Promoting a never-green gate would block every open PR.
gc-native-roots.ymlis listed in #7966 as having "NO successful post-merge run in the sampled window". Checking it, the window is not the limit:gh run list --workflow=gc-native-roots.yml --status=success --limit 50 # (empty — all branches, all events)It has never had a single successful run. This is a red gate, not a starved one, and it should be triaged separately from #7966's scheduling problem.
Evidence
Run
31405431962(push/main, shabf8af0e0f, 2026-08-10) — three of four arms fail, with three different root causes:ubuntu-latestx86-64 ELFubuntu-24.04-armaarch64 ELF::error::01_nursery_churn crashed under PERRY_STACKMAP_WALKER=verifywindows-latestx86-64 PEmacos-14aarch64 Mach-Ogc_evacuation_liveness_assert.py: "the forced-evacuation arm evacuated NOTHING (0 copying minors, 0 objects copied)… No[gc-copy-minor]line at all — every collection in this run was a FULL cycle"gc-native-roots-completeIt is also starved on top of that — the aggregator for that run only completed 2026-08-12T12:09Z, ~44h after creation. #7969 fixes the starvation; it does not touch any of the three failures above.
Why the macOS arm is worth looking at first
Its symptom — "every collection was a FULL cycle, zero copying minors" — is the same shape as #7965.
Flagging this as a hypothesis, not a conclusion: it cannot be the same bug. This run is at
bf8af0e0fon 2026-08-10, two days before #7902 (1bd5eeb6b) merged. But "the collector stopped running copying minors" has now surfaced twice in three days from two different causes, and this arm has been sitting on the first instance unread since at least 08-10 because nobody was reading a gate that has never been green.That is also a direct instance of CLAUDE.md hazard 4 wearing a new hat: the gate is genuinely red, reports red, and blocks nothing — it is not in branch protection's required contexts, so a red result is indistinguishable from the noise of a starved queue.
Suggested triage order
gc_evacuation_liveness_assert.pyfailure is the one with a real GC claim behind it, and it is the arm whose subject overlaps the live perf(gc): main regressed the retain cluster 2.2-4.8x — retain now runs 2 full collections where it ran none (suspect #7901/#7902) #7965 investigation.PERRY_STACKMAP_WALKER=verify— a crash in the walker itself.Each is plausibly independent; they should probably not be fixed as one change.
Note on promotion
Once green, this is a candidate for branch protection — but per CLAUDE.md, run it once green first, then promote. Promoting a never-green gate would block every open PR.
Found while diagnosing #7966. Related: #7969.