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
and that combination appears only in --arms all (evac_minor / cons_scan_off_force). cons_scan_off on its own is pressure + precise roots with incremental mode still on, which does not take the relocating path.
Measurement
Built the five #6982 crashers from aa1c15028 (i.e. unfixed) and ran each PR-gated arm. All green:
The same binaries crash immediately under PERRY_GC_HEAP_LIMIT=8 PERRY_GC_INCREMENTAL=0 PERRY_CONSERVATIVE_STACK_SCAN=off (SIGBUS/SIGSEGV, copied_objects 4 579 / 5 965).
So the entire "raw reference held across a relocating collection" class — #6951, #6972, #6982, #6991, #6992 — is invisible to the per-PR gate. It can only go red after merge, on push.
Why I did not just fix it
Adding evac_minor to PR_ARMS today would fail every PR: 13 of 21 corpus cells are still red on that arm (2 crashes + 11 mismatches after #6982's fix). The gate has to become green-able first.
The hole
scripts/gc_repsel_matrix.shruns on pull requests with--arms pr:and on push with
--arms all(.github/workflows/test.yml,gc-stressjob).But the evacuating base that #6981 established as the discriminator needs both halves together:
and that combination appears only in
--arms all(evac_minor/cons_scan_off_force).cons_scan_offon its own is pressure + precise roots with incremental mode still on, which does not take the relocating path.Measurement
Built the five #6982 crashers from
aa1c15028(i.e. unfixed) and ran each PR-gated arm. All green:The same binaries crash immediately under
PERRY_GC_HEAP_LIMIT=8 PERRY_GC_INCREMENTAL=0 PERRY_CONSERVATIVE_STACK_SCAN=off(SIGBUS/SIGSEGV,copied_objects4 579 / 5 965).So the entire "raw reference held across a relocating collection" class — #6951, #6972, #6982, #6991, #6992 — is invisible to the per-PR gate. It can only go red after merge, on push.
Why I did not just fix it
Adding
evac_minortoPR_ARMStoday would fail every PR: 13 of 21 corpus cells are still red on that arm (2 crashes + 11 mismatches after #6982's fix). The gate has to become green-able first.Suggested shape
thismethod value is lost across a relocating minor (TypeError: bump is not a function) #6992, gc: scalar-replaced object/array locals holding heap values are not precise roots #6968) until theevac_minorcolumn is green or has a documented, enumerated skip list.evac_minortoPR_ARMS, with the remaining known-red cells in an explicit allowlist (same provenance discipline astest-parity/known_failures.json, cf. test-parity: audit known_failures.json — every entry needs an issue # and date #797) so new breakage is caught but known breakage does not block.evac_minorPR run so the signal is at least visible on the PR page rather than only after merge.Related: #6981, #6982, #6991, #6992, #6977, #6950.