Skip to content

feat(t27b): corpus retries a timed-out file once, sequentially (Closes #6310) - #6311

Merged
gHashTag merged 1 commit into
masterfrom
claude/t27b-timeout-retry
Oct 5, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/t27b-timeout-retry

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Closes #6310
Refs #6063

Why

The Railway lab runs qemu-aarch64 t27b corpus specs --json --runner qemu-aarch64 --timeout-ms 60000 --jobs 24. Two consecutive runs each lost a fast file to a timeout:

  • e2fb1d8: specs/ml/recurrent/bilstm.t27 timeout (rejected natively in 12 ms; blocked again the next run)
  • 0851055: specs/trinity/capabilities/ops.railway-cli.t27 timeout while the reference passes (t27b passes natively in 3.6 ms)

What

  • blockers::retry_timeouts_once: each item that timed out is re-run once, in order, one at a time; the retry's verdict replaces it; returns which were retried.
  • t27b corpus calls it after the parallel pass with the same timeout and runner. Per-file JSON gets "retried_after_timeout": true (only on retried records), totals get timeout_retried, text output prints RETRIED lines and a timed out, retried once row. All other totals count the retry's verdict; pass/fail/mismatch semantics otherwise unchanged.
  • contrib/railway/t27b-lab/lab.py: summary gains timeout_retried (read from the per-file records). The lab copies totals and records through unchanged, and tri t27b reads named keys only, so the new fields break nothing.
  • README corpus section documents it. lower.rs untouched.

Evidence

  • cargo test -p t27b (target /tmp/t27b-retry-target): all green, incl. new a_timeout_is_retried_exactly_once_and_the_retry_decides (times-out-once -> retry verdict; always-times-out -> stays timeout; never retried twice; non-timeouts never re-run, negative control panics if re-run).
  • Local t27b corpus specs --jobs 6 (load ~7.6), master binary vs this branch:
    • before: pass 296, pass_vacuous 279, fail 6, blocked 633, frontend 40, mismatch 0, codegen 0, timeout 3, crash 0
    • after: identical, plus timeout_retried 3 (axi4_tb, clock_domain_tb, gf16_accel_tb: genuine loops, still timeout). No per-file record changed. mismatch 0.
  • End-to-end with a test runner that sleeps 30 s on the first call per file (timeout 2000 ms) over bilstm.t27 + ops.railway-cli.t27: this branch -> 1 pass + 1 blocked, both retried_after_timeout: true; master binary on the same runner -> 2 timeouts.
  • python3 scripts/ci/test_the_t27b_lab_heals_its_clone.py: PASS.

Cost on the lab: the 3 genuine loops now take one extra 60 s each, sequentially (~3 min per run).

🤖 Generated with Claude Code

Closes #6310
Refs #6063

On the Railway lab (--jobs 24, qemu, 60 s) fast files timed out under
contention: bilstm.t27 (12 ms natively) in run e2fb1d8 and
ops.railway-cli.t27 (3.6 ms natively, reference passes) in run 0851055.

t27b corpus now gives each timed-out file one more run, alone, after the
parallel pass, with the same timeout; the retry's verdict is final, so
genuine infinite loops stay timeouts. Records carry
"retried_after_timeout": true, totals carry timeout_retried, and the lab
summary counts them. Local corpus totals unchanged except the new field
(mismatch 0).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-05 00:07:05 UTC

Summary

Status Count
Total Open PRs 45
PRs with Failing Checks 33
PRs with All Checks Green 12
READY 11
FAILING 33
PENDING 0
NO CHECKS YET 0

These columns do not partition: 11 + 33 + 0 + 0 = 44, and there are 45 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=8597b6ded596 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit e709bfa into master Oct 5, 2026
30 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

t27b corpus: retry a timed-out file once, sequentially, after the parallel pass

1 participant