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
{{ message }}
Repository navigation
linux-only: cold_callback_arms_resume_once_at_the_next_index aborts (panic in a nounwind fn) in the GC deopt fixture #9482
cargo-test-perry fails on Linux (ubuntu-latest), blocking full-suite-gate and therefore any release cut:
test cold_callback_arms_resume_once_at_the_next_index ... FAILED
panicked at crates/perry/tests/versioned_indexed_loop_callback_deopt.rs:324:5:
fixture failed (force_evacuation=false)
stderr:
thread '<unnamed>' panicked at library/core/src/panicking.rs:225:5:
panic in a function that cannot unwind
thread caused non-unwinding panic. aborting.
The inner abort — a panic crossing a nounwind boundary — is the interesting
part; see #8479 for the unwind-regime context.
Platform-specific
platform
result
ubuntu-latest (CI)
fails, 2/2 runs where it executed — never observed green
macOS/aarch64, clean build at the same pin
passes, 3/3
I originally called this flaky based on the macOS runs. That was wrong: the
macOS result says nothing about Linux, and on Linux it has never passed.
Not established: whether this is long-standing Linux-only debt or a recent
runtime regression. The test never executed in the Aug-31 full tier — that
shard died early — so there is no historical baseline, and I have no Linux host
to bisect on. Getting one costs a full tier run against an old pin.
Reproduce (Linux)
cargo build -p perry -p perry-runtime-static -p perry-stdlib-static
RUST_TEST_THREADS=1 cargo test -p perry --test versioned_indexed_loop_callback_deopt
The fixture is the force_evacuation=false arm, so it is on the ordinary
(non-forced) GC path.
Status
Marked #[ignore] to unblock the release, in the same spirit as #9377/#9378 — deferred, not dismissed. Unlike those two, I cannot show it is pre-existing;
the honest statement is that it fails consistently on Linux and its age is
unknown. Re-enable is a one-line change once diagnosed.
Closing: #9566 (landed via merge train #9572 on 2026-09-02) showed the abort was the #8479 test-environment mismatch — the fixture linked a debug panic=unwind runtime — not a GC deopt failure. It now builds a panic=abort runtime, the Linux ignore from #9488 is removed, and the test passes on Linux for both force_evacuation arms.
Activity
test: ignore the Linux-only GC deopt abort (#9482) (#9483)
test: ignore the Linux-only GC deopt abort (#9482) (#9488)
proggeramlug commentedon Sep 2, 2026
Closing: #9566 (landed via merge train #9572 on 2026-09-02) showed the abort was the #8479 test-environment mismatch — the fixture linked a debug panic=unwind runtime — not a GC deopt failure. It now builds a panic=abort runtime, the Linux ignore from #9488 is removed, and the test passes on Linux for both force_evacuation arms.