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
t27c suite test: fake tri script spawn races with ETXTBSY under parallel tests #7312
suite::tests::test_run_fpga_smoke_gate_passes_with_good_report (bootstrap/src/suite.rs) failed once in a full cargo test --release -p t27c --no-fail-fast on the Railway lab (2026-10-07 05:45Z, master e1ede4a plus #7311):
smoke-gate should pass: spawning /tmp/t27_suite_smoke_pass_<pid>/fake_tri/tri for FPGA smoke gate
Caused by:
Text file busy (os error 26)
It passed 3 of 3 when run alone. This is the known ETXTBSY race (rust-lang/rust#114554): make_fake_tri_script writes the script and closes its fd, but another test thread that forks between File::create and the close passes the open write fd to its child, which holds it until its own exec. Running the script during that window gets ETXTBSY.
Expected
The test passes under the default parallel test runner on a busy machine.
Possible fix
Either run the fake as sh <script> (no exec of a file just written), or retry the spawn a few times on ErrorKind::ExecutableFileBusy / raw os error 26 in the test helper only. The second keeps run_fpga_smoke_gate itself unchanged.
Criteria
cargo test --release -p t27c --bin t27c -- suite::tests::test_run_fpga_smoke_gate passes 20 of 20 in a loop under --test-threads 48 on the lab.
Boundary
bootstrap/src/suite.rs
User Scenarios
Given the t27c test suite runs with multiple parallel threads, When a test writes a fake tri script and another test thread forks during the write-to-close window, Then the spawn of the fake tri script should not fail with ETXTBSY (Text file busy).
Requirements
FR-001: The test helper that spawns the fake tri script MUST handle ETXTBSY (os error 26 / ErrorKind::ExecutableFileBusy) by retrying the spawn a few times.
FR-002: The fix MUST keep the run_fpga_smoke_gate function itself unchanged.
FR-003: The test MUST pass reliably under high parallelism (e.g., 48 threads).
Success Criteria
cargo test --release -p t27c --bin t27c -- suite::tests::test_run_fpga_smoke_gate --test-threads 48 runs 20 times in a loop and exits 0 each time.
The test suite::tests::test_run_fpga_smoke_gate_passes_with_good_report passes consistently when run with cargo test --release -p t27c --no-fail-fast --test-threads 48.
Reopened 2026-10-07: the bulk close of issues without a ## Boundary section was reverted by the owner. Nothing to do here; this comment replaces the earlier close notice.
Activity
gHashTag commentedon Oct 7, 2026
Reopened 2026-10-07: the bulk close of issues without a
## Boundarysection was reverted by the owner. Nothing to do here; this comment replaces the earlier close notice.