Summary
tests/conformance/ch05_closure_nat_return.vera (run level) trapped once during a full scripts/check_conformance.py run, and has not reproduced since:
FAIL (run): ch05_closure_nat_return
Error: Reached `unreachable` WASM instruction
Source backtrace: in main (.../ch05_closure_nat_return.vera:41-57)
The only trap sites in main's emitted WAT are the sentinel assert(@Nat.0 == 42) and the two GC shadow-stack-overflow guards — so that one run either computed apply_fn(abs, -42) != 42 or hit a shadow-stack guard.
Reproduction attempts (all clean)
- ~750 isolated executions of the program (500 tight-sequential + 150 parallel + 30 under
VERA_EAGER_GC=1 + hash-seed sweeps) — 0 failures.
- 12 further full
check_conformance.py runs at the time of capture — 1 failure in 13 total.
- A dedicated 12× full-suite batch (12 × 153 programs) after the fact — 0 failures.
- The emitted WAT for the closure is deterministic and arithmetically correct (
-42 → 0-(-42)=42 → guard false → 42), verified by inspection and ~40 boundary executions.
Assessment
Not attributable to the #984 guard logic (deterministic WAT, massive clean-run evidence); most consistent with a rare pre-existing runtime/GC/wasmtime interaction that this two-closure-plus-assert program happens to be able to surface. Filed because the program sits in a pre-commit + CI gate: even a ≪1% flake will eventually red an unrelated PR, and when it does, the failure should resolve here rather than start a fresh investigation.
If it fires again
Capture: the full check_conformance.py output, wasmtime --version, OS/arch, and whether the run was under parallel load. The shadow-stack guards in main are the prime suspect ($gc_sp overflow checks); VERA_EAGER_GC=1 did not reproduce, so a load-dependent GC timing interaction is the leading hypothesis.
Captured during the PR #995 review round — the verbatim failure output, trap-site analysis from the preserved WAT, full reproduction-attempt table, and environment details are documented in the first comment below.
Summary
tests/conformance/ch05_closure_nat_return.vera(run level) trapped once during a fullscripts/check_conformance.pyrun, and has not reproduced since:The only trap sites in
main's emitted WAT are the sentinelassert(@Nat.0 == 42)and the two GC shadow-stack-overflow guards — so that one run either computedapply_fn(abs, -42) != 42or hit a shadow-stack guard.Reproduction attempts (all clean)
VERA_EAGER_GC=1+ hash-seed sweeps) — 0 failures.check_conformance.pyruns at the time of capture — 1 failure in 13 total.-42 → 0-(-42)=42 → guard false → 42), verified by inspection and ~40 boundary executions.Assessment
Not attributable to the #984 guard logic (deterministic WAT, massive clean-run evidence); most consistent with a rare pre-existing runtime/GC/wasmtime interaction that this two-closure-plus-assert program happens to be able to surface. Filed because the program sits in a pre-commit + CI gate: even a ≪1% flake will eventually red an unrelated PR, and when it does, the failure should resolve here rather than start a fresh investigation.
If it fires again
Capture: the full
check_conformance.pyoutput,wasmtime --version, OS/arch, and whether the run was under parallel load. The shadow-stack guards inmainare the prime suspect ($gc_spoverflow checks);VERA_EAGER_GC=1did not reproduce, so a load-dependent GC timing interaction is the leading hypothesis.Captured during the PR #995 review round — the verbatim failure output, trap-site analysis from the preserved WAT, full reproduction-attempt table, and environment details are documented in the first comment below.