docs(ci-reds): U14, and U6's direction claim withdrawn within the hour
The gate run verifying revision 5 redded three unrelated tests in three stages: a 50ms supersede budget in `lib`, U6's pair in `lib-crdt`, and an LSP readiness race in `sweep`. Recorded as U14, because the co-occurrence is the signature --- three subsystems failing in one run is far less likely than one loaded machine, and no selector reds twice. It also falsifies something I had committed an hour earlier. U6's second-occurrence block said the row "runs the OPPOSITE way to R7", resting on both failures being out of gate while `04-lib-crdt` was green in four gate runs. The next gate run redded `04-lib-crdt` with exactly that pair. Four green stages were a run of four, not a property. The claim is withdrawn in place rather than edited away, and U6's status moves to a third occurrence: three in one afternoon, twice out of gate and once in. U14 also declines an R1 match it could have claimed. The `lib` failure carries R1's required fragment but a different selector, and this registry matches on both. Worth noting separately: the sibling test already reports the elapsed value R1's row records as missing from its own assertion --- the cheap half of what R1 defers is written next door.
This commit is contained in:
parent
099b5a7383
commit
e0fcfe3e9b
|
|
@ -925,7 +925,7 @@ was lost.
|
|||
| **selector** | `--lib --features crdt optimistic::tests::criterion_1_end_of_line_typing_completes_sub_frame_per_keystroke` **and** `editor::tests::composition_overhead_under_ten_percent`, failing in the same run |
|
||||
| **job / flavor** | local (Linux), `scripts/gate` step `04-lib-crdt`, with sibling worktrees building concurrently |
|
||||
| **required fragments** | `criterion 1: per-keystroke orchestrator time` + `exceeds 1ms`; and `composition machinery added more than 10% overhead` |
|
||||
| **status** | **SECOND OCCURRENCE 2026-08-30, and the first time it REPRODUCED — twice in a row.** Still no mechanism; see the block below |
|
||||
| **status** | **THIRD OCCURRENCE 2026-08-30 — the first time it has REPRODUCED, three times in one afternoon, twice out of gate and once in.** Still no mechanism; see the block below |
|
||||
| **what IS established** | both are **wall-clock budget assertions** — 1.264ms against a 1ms budget, and 1.297× against a 1.10× budget — so both are load-sensitive by construction. Both green in an isolated rerun of exactly those two selectors, and both green in the next full gate run of the same command (2105 passed) |
|
||||
| **what is NOT** | whether the machine's concurrent load caused it. The confound is real (this machine runs one shared `CARGO_TARGET_DIR` and several worktrees) but **was not measured**, so it is a rival explanation, not a finding |
|
||||
| **rival explanation not excluded** | a genuine regression in either path. Nothing in the observing diff touches the optimistic-echo orchestrator or the composition pipeline, but "my diff looks unrelated" is not evidence, and this row does not treat it as such |
|
||||
|
|
@ -948,14 +948,17 @@ So the composition margin grew and the keystroke margin grew, but
|
|||
neither by an order that separates load from regression. Both selectors
|
||||
were green in isolated single-selector reruns.
|
||||
|
||||
**The asymmetry runs the OPPOSITE way to R7, and that is the useful
|
||||
part.** Both failures were **out of gate** — a bare
|
||||
`cargo test --lib --features crdt` in the worktree — while the same
|
||||
command as `scripts/gate`'s `04-lib-crdt` step was **green in all four
|
||||
of this lane's gate runs** (`20260830T154827Z`, `T155621Z`, `T160242Z`,
|
||||
`T160824Z`). R7 fails in-gate and has never reproduced outside it; U6
|
||||
here did the reverse. Whatever the two rows share, it is not a
|
||||
direction.
|
||||
**A DIRECTION CLAIM WAS MADE HERE AND IS WITHDRAWN, within the hour.**
|
||||
This block first said the asymmetry "runs the OPPOSITE way to R7":
|
||||
both failures were out of gate, while `04-lib-crdt` was green in all
|
||||
four of this lane's gate runs to that point (`20260830T154827Z`,
|
||||
`T155621Z`, `T160242Z`, `T160824Z`). **The very next gate run redded
|
||||
`04-lib-crdt` with this exact pair** (`20260830T171941Z-3509751`,
|
||||
margins `1.689259ms` against 1ms and `1.592×` against 1.10×) — see U14,
|
||||
which records that run whole. So U6 fails **both** in and out of gate,
|
||||
the four green stages were a run of four and not a property, and the
|
||||
only honest reading is the one the first occurrence already gave: these
|
||||
are wall-clock budgets on a loaded machine.
|
||||
|
||||
**No mechanism is claimed, and the load confound is again unmeasured.**
|
||||
The machine was running the agent session's own build and test traffic;
|
||||
|
|
@ -1220,6 +1223,56 @@ concurrency to 1, and separately load a lone `--lib` binary. Four
|
|||
incidents is enough evidence that the family will keep costing review
|
||||
rounds until someone runs it.
|
||||
|
||||
### U14 — three unrelated tests red in ONE gate run, in three stages
|
||||
|
||||
Recorded on the CRDT identity-undo lane, 2026-08-30, local (Linux),
|
||||
`scripts/gate` log `20260830T171941Z-3509751`. **The co-occurrence is
|
||||
the signature**, as it is for U6, U9 and U12: three unrelated
|
||||
subsystems failing in one run is far less likely than one loaded
|
||||
machine, and no single selector here reds twice.
|
||||
|
||||
| field | value |
|
||||
|---|---|
|
||||
| **selectors** | `03-lib`: `async_runtime::tests::grep_supersede_cancels_predecessor_within_50ms`. `04-lib-crdt`: U6's pair. `07-sweep`: `lsp_dispatch_seams_acceptance::acc34_purge_reaches_a_server_that_is_in_no_attachment` |
|
||||
| **job / flavor** | local (Linux), one `scripts/gate` run, three different steps |
|
||||
| **required fragments** | `grep supersede did not cancel within 50ms` + an `elapsed:` value; `criterion 1: per-keystroke orchestrator time` + `exceeds 1ms`; `composition machinery added more than 10% overhead`; `is not ready for requests (state: initializing)` |
|
||||
| **status** | **new incident, one occurrence** |
|
||||
| **what IS established** | all four fragments captured from the durable stage logs. Margins: `52.44341ms` against 50ms (4.9% over); `1.689259ms` against 1ms; `1.592×` against 1.10×. The `07-sweep` failure is **not** a budget — an LSP server was asked for a request while still `initializing` |
|
||||
| **what is NOT** | any shared mechanism. Three stages, three subsystems, and one of the three is a readiness race rather than a clock |
|
||||
| **the observing tree** | the lane's revision-5 commits: an enumeration in a `#[cfg(test)]` predicate and documentation. It touches `async_runtime`, `optimistic`, `editor` and the LSP dispatch seam **not at all** |
|
||||
|
||||
**Relation to R1, and it is NOT a match.** The `03-lib` failure carries
|
||||
R1's required fragment `supersede did not cancel within 50ms`, but R1's
|
||||
selector is `supersede_cancels_in_flight_job_within_50ms` and this is
|
||||
`grep_supersede_cancels_predecessor_within_50ms` — **a different test**.
|
||||
This registry matches on selector *and* fragments, and U6's own
|
||||
instruction ("one without the other is a different incident") points the
|
||||
same way. Recorded as a sibling, not an occurrence.
|
||||
|
||||
**One thing the sibling shows for free, and R1 should have it.** R1's
|
||||
row records that its assertion "still omits its measurement —
|
||||
`started.elapsed()` is in hand at the panic and the message reports none
|
||||
of it, so this occurrence's margin is as unrecoverable as every prior
|
||||
one's." **The sibling test already reports it**: `(elapsed:
|
||||
52.44341ms)`, which is how the 4.9% margin above is known at all. The
|
||||
measurement-design question R1 defers to the async-runtime lane is
|
||||
untouched by this — but the cheap half of it is demonstrably already
|
||||
written, next door in the same module.
|
||||
|
||||
**Reruns: all four selectors green in isolation** — `grep_supersede…`
|
||||
`1 passed`, U6's two `1 passed` each, and the whole
|
||||
`lsp_dispatch_seams_acceptance` binary `15 passed`. Per this file's
|
||||
rerun rule that establishes **intermittence only**; it exonerates
|
||||
nothing, and in particular it does not show the tree is innocent, only
|
||||
that the failures do not reproduce alone.
|
||||
|
||||
**The readiness failure is the one worth watching.** A budget test on a
|
||||
loaded machine is a known shape here; `server LspServerId(1) is not
|
||||
ready for requests (state: initializing)` is a **race between a test and
|
||||
a state machine**, and load makes it more likely without being its
|
||||
cause. If it recurs it should be judged on its own, not folded into this
|
||||
row's co-occurrence.
|
||||
|
||||
### U13 — gate prune-reporting row receives empty child stdout in `sweep`
|
||||
|
||||
Recorded during PR #244 review, 2026-08-29, on signed head `756c2b8`.
|
||||
|
|
|
|||
Loading…
Reference in New Issue