Commit f3271f5
committed
gate: fail loudly when python_gate copy can't be made
Pushes 36, 37, 38 all gated against the stale python_gate from
push 33 (8382896), not their respective HEAD binaries.
Root cause: 'cp "$PYTHON" "${PYTHON}_gate" 2>/dev/null || true'.
When a prior gate left python_gate held open (or otherwise busy),
cp failed with 'Text file busy', stderr was discarded, '|| true'
swallowed the exit code, and PYTHON pointed to the leftover stale
copy. Subsequent test runs reported 981 PASS — against a binary
from 3 commits ago.
Fix: rm -f the destination first, then cp without || true. If cp
fails for any reason, set -e aborts the gate. No more silent
fallback to a stale binary.
Discovery: testkeeper investigated SIGSEGV during G1.6 LIR-capture
prep on the actual HEAD binary (carrying generalist's in-flight
LOAD_ATTR_SLOT stash). The crash didn't reproduce on python_gate
because python_gate was 3 commits old and predated the SLOT work.
The version-string mismatch ('79890e7b73-dirty' vs '8382896c85')
made the stale-binary substitution visible.
Also adds catch python#4 to docs/wiring_catches.md per supervisor
2026-04-22 00:42:38Z directive.1 parent 79890e7 commit f3271f5
2 files changed
Lines changed: 10 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
77 | | - | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
78 | 85 | | |
79 | 86 | | |
80 | 87 | | |
| |||
0 commit comments