docs: R7 has a second occurrence, and this time the fragments were captured
`attach::tests::managed_retry_survives_transients_and_uses_the_successful_stream`
failed once at this lane's `scripts/gate` **`gpu` step** on 2026-08-09.
Judged against this file rather than rerun-and-shrugged.
**It matches R7 on all three of its required fragments**, verified rather
than inferred:
transient sequence must attach: Attach(Handshake(Io(Os {
code: 32, kind: BrokenPipe, message: "Broken pipe" })))
**That capture is the point.** U2 and U3 both record the identical loss —
"output was filtered to the `FAILED` line" — and U3 says outright that
the recurring mistake was its author's, twice, with a mechanical fix:
read the durable log, never the live stream. The gate writes
`NN-gpu.log` for exactly this, and reading it turned what would have been
a third unjudgeable `U` note into a second occurrence of a row that had
one.
The flavor is a third one (`PMACS_REQUIRE_GPU=1 cargo test -p pmacs-gpu`,
neither occurrence 1's `--features crdt` sweep nor U3's default-features
workspace sweep). Recorded because this file's own R2 worked example
treats flavor as outside matching.
**The merge-base control R7 asked for was run, and it settles nothing.**
15 runs at `4bc55e8`, green — but the observing branch was green over 30
runs too (15 isolated selector, 15 full suite), so neither side
reproduced and the comparison separates nothing. Logged as a null result,
not as exculpation. Per the rerun rule, all 45 green runs establish
**intermittence only**.
**And one causal path is named rather than dismissed:** this lane adds a
GPU-heavy `render_offscreen` test to `pmacs-gpu`'s test module. It
touches no `attach.rs`, no protocol and no wire — but it does add a
concurrent test to the same binary, and the failing test is a socket
handshake on a one-second deadline. Contention is a plausible
`BrokenPipe` mechanism and 30 green runs do not exclude it. The row now
says what the discriminating control would be if there is a third
occurrence: remove the added test, not go to the merge base.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
parent
d4a69cae14
commit
37a81227c7
|
|
@ -496,16 +496,46 @@ Stage 4; the lane touches no `pmacs-gpu` code at all.
|
|||
| **selector** | `-p pmacs-gpu attach::tests::managed_retry_survives_transients_and_uses_the_successful_stream` |
|
||||
| **job / flavor** | local (Linux), `cargo test --workspace --features crdt --no-fail-fast`, i.e. under full-sweep load |
|
||||
| **required fragments** | `transient sequence must attach` + `Handshake(Io(` + `BrokenPipe` (or `code: 32`) |
|
||||
| **status** | **new incident, unreproduced — causal status UNRESOLVED** |
|
||||
| **what IS established** | one occurrence at `pmacs-gpu/src/attach.rs:1680`; the test drives a scripted transient-then-success sequence over a real socket pair |
|
||||
| **status** | **SECOND OCCURRENCE 2026-08-09 — causal status still UNRESOLVED** |
|
||||
| **what IS established** | **two** occurrences at `pmacs-gpu/src/attach.rs:1680`, the second with all three fragments **verified** rather than inferred; the test drives a scripted transient-then-success sequence over a real socket pair |
|
||||
| **what is NOT** | whether the broken pipe is the *fixture's* writer closing early or a real retry-path defect. **This row is not a claim that it is harmless** |
|
||||
| **rerun evidence** | 6 isolated runs green, plus a full `--workspace --features crdt` sweep green (113 targets). Per the rerun rule this establishes **intermittence only** |
|
||||
| **rerun evidence** | occurrence 1: 6 isolated runs green, plus a full `--workspace --features crdt` sweep green (113 targets). Occurrence 2: **30 green on the observing branch** (15 isolated selector, 15 full `-p pmacs-gpu`) **plus a 15-run merge-base control, also green**. Per the rerun rule all of this establishes **intermittence only** |
|
||||
| **retirement** | hardening that removes the named mechanism plus a discriminating witness — or a diagnosis showing the fixture, not the code, closes the pipe |
|
||||
|
||||
**Not attributed to this lane**, and the reasoning is not merely "my
|
||||
diff looks unrelated": Stage 4 adds no wire surface, no protocol
|
||||
version change, and touches no file in `pmacs-gpu`. A merge-base
|
||||
control would settle it if this recurs.
|
||||
**Not attributed to the observing lane**, and in neither case is the
|
||||
reasoning merely "my diff looks unrelated": long-lines Stage 4 added no
|
||||
wire surface, no protocol version change, and touched no file in
|
||||
`pmacs-gpu`.
|
||||
|
||||
**Second occurrence — worker identity Stage 1, 2026-08-09, local
|
||||
(Linux).** Recorded at the `scripts/gate` **`gpu` step**
|
||||
(`PMACS_REQUIRE_GPU=1 cargo test -p pmacs-gpu`), which is a **third
|
||||
flavor**: not the `--features crdt` sweep of occurrence 1, and not U3's
|
||||
default-features workspace sweep. Two things make it a match rather than
|
||||
a `U` note:
|
||||
|
||||
* **The fragments were captured this time.** `transient sequence must
|
||||
attach: Attach(Handshake(Io(Os { code: 32, kind: BrokenPipe, message:
|
||||
"Broken pipe" })))` — all three of the row's required fragments,
|
||||
verified against the durable gate log rather than a filtered live
|
||||
stream. **That is what U2 and U3 both lost**, and it is why U3 could
|
||||
not be judged a recurrence. Reading the gate's own `NN-gpu.log` is the
|
||||
mechanical fix U3 prescribed, and it worked.
|
||||
* **The merge-base control R7 asked for was run** — 15 runs at `4bc55e8`,
|
||||
green. It is **non-discriminating**, not exculpatory: the observing
|
||||
branch was equally green over 30 runs, so neither side reproduced and
|
||||
the control separates nothing. Recorded as a null result rather than
|
||||
as evidence.
|
||||
|
||||
**One causal path is NOT excluded and is named here rather than
|
||||
dismissed.** The observing lane added a test to `pmacs-gpu`'s test module
|
||||
(`main.rs`) — a GPU-heavy `render_offscreen` case. It touches no
|
||||
`attach.rs`, no protocol, and no wire, but it does add a concurrent test
|
||||
to the same binary, and the failing test is a socket handshake with a
|
||||
one-second deadline. Contention is a plausible mechanism for a
|
||||
`BrokenPipe`, and 30 green runs do not rule it out. If a third occurrence
|
||||
lands, **run the control with the added test removed** rather than at the
|
||||
merge base — that is the discriminating comparison this one was not.
|
||||
|
||||
### U2 — `m6_1_pty_raw_mode_disables_kernel_echo`, one local occurrence
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue