Repository navigation
release blocker: test_gap_gc_alloc_point_no_move compile does not terminate #8913
Description
Release evidence
One fixture deterministically consumes multiple Full CI jobs until their hard limits: test-files/test_gap_gc_alloc_point_no_move.ts.
- Candidate:
7c9f6016987ea9fdce2d253fb8666428cf0c6d24 - Full CI: https://github.com/PerryTS/perry/actions/runs/33123474583
Three independent consumers identify it:
- gap-suite shard 1 passed 37/73 tests, then emitted no result for test 38 for about 75 minutes and was killed at its 110-minute limit:
https://github.com/PerryTS/perry/actions/runs/33123474583/job/98695927559 - parity shard 10 passed 37/115 tests, then emitted no result for test 38 for about 164 minutes and was killed at its 210-minute limit:
https://github.com/PerryTS/perry/actions/runs/33123474583/job/98698057058 - compile-smoke hit GitHub's default 360-minute limit. Its error artifact contains exactly one empty in-flight log,
test_gap_gc_alloc_point_no_move.compile_error.log:
https://github.com/PerryTS/perry/actions/runs/33123474583/job/98698056865
The candidate tree's round-robin selection confirms test 38 in both shards is test_gap_gc_alloc_point_no_move. The empty compile log and live perry process place the stall inside compilation, before an error is reported.
The candidate already contains the bounded TailCallElim alloca walk from #8894, so this is a remaining compile-time pathology.
Reproduction
cargo build --release
time target/release/perry \
test-files/test_gap_gc_alloc_point_no_move.ts \
-o /tmp/perry-gap-gc-alloc-point
./run_parity_tests.sh --filter test_gap_gc_alloc_point_no_moveProfile compiler passes during the isolated command; do not diagnose this by repeatedly running the entire Full CI matrix.
Required fix
Find and bound the compiler phase that scales pathologically on this fixture while preserving the fixture's allocation-point/no-move assertions. Add pass timing or a focused regression guard so a future unbounded walk fails close to the source.
Acceptance criteria
- The isolated compile completes reliably and well below the 110-minute shard limit on an
ubuntu-latest-class runner. - The fixture runs and passes; it is not skipped, weakened, or allowlisted.
- Full-mode gap shard 1 and parity shard 10 complete and upload reports.
- compile-smoke completes rather than reaching six hours.
Activity