docs(evidence): D0a executed --- the source hypothesis is eliminated
Ten runs under the approved contract: counterbalanced A B B A A B B A A
B, N = 5 per endpoint, clean detached worktrees at 7599661 and 724b785,
isolated target directories, the gate's build-crdt precondition then its
sweep-crdt command, dirty=0 verified per run. Zero voids, zero splits.
A (7599661) uniform-red. B (724b785) uniform-red. By the approved
endpoint table that is the both-endpoints-uniform-same row: the
difference is NOT captured by those two commits.
What it settles:
- No bisect of 7599661..724b785 is justified, and none will run.
7599661 passed inside sweep-crdt on 08-15 and fails 5/5 clean today,
so the interval cannot contain the transition.
- The onset window is demoted --- still a true observation, but not
reachable by source.
- A RELIABLE REPRODUCTION now exists: 10/10 today across two commits
at ~4 minutes per run. This is D0a's most useful product, because
D1/D2 no longer depend on catching a rare event.
What it does not settle: anything about the mechanism. One cheap
negative on "what else changed" --- no package activity in the window per
pacman.log, nearest on 08-18 --- and it is not pursued further, because
with a reproduction in hand direct measurement dominates archaeology.
A's three extra failing binaries are recorded rather than swept up:
a54_real_daemon_real_pty_and_headless_gpu_render..., a v21/v20 row
expected to differ at that older commit, and m6_1_pty_mode_lifecycle.
Two of the three are process/PTY-spawn rows, the same family as the
target. None affect classification, which reads only the two target
copies.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
parent
bdef05cd02
commit
24a84b5381
|
|
@ -270,7 +270,7 @@ hazard in a shape that looks committed. **A documented error message
|
||||||
that never appears is worse than no documentation**, because the reader
|
that never appears is worse than no documentation**, because the reader
|
||||||
waits for a signal that is not coming.
|
waits for a signal that is not coming.
|
||||||
|
|
||||||
## GPU launcher / probe SIGINT teardown — FRAMING APPROVED, diagnostics not started
|
## GPU launcher / probe SIGINT teardown — D0a DONE, mechanism unknown
|
||||||
|
|
||||||
**Written with the branch's FIRST commit**, per the standing correction
|
**Written with the branch's FIRST commit**, per the standing correction
|
||||||
from #171 and #215.
|
from #171 and #215.
|
||||||
|
|
@ -285,6 +285,19 @@ from #171 and #215.
|
||||||
rather than guessing. Revisions 1, 2 and 3 were each rejected on
|
rather than guessing. Revisions 1, 2 and 3 were each rejected on
|
||||||
findings, all upheld; run provenance lives in
|
findings, all upheld; run provenance lives in
|
||||||
`docs/probe-sigint-evidence.md`.
|
`docs/probe-sigint-evidence.md`.
|
||||||
|
- **D0a EXECUTED 2026-08-19 — verdict: difference NOT captured by the
|
||||||
|
two commits.** 10 runs, counterbalanced, N=5 per endpoint, clean
|
||||||
|
detached worktrees with isolated target dirs, `dirty=0` per run, zero
|
||||||
|
voids, zero splits. **A (`7599661`) uniform-red; B (`724b785`)
|
||||||
|
uniform-red.** So `7599661`, which passed inside `sweep-crdt` on
|
||||||
|
08-15, fails 5/5 clean today: **the source hypothesis is eliminated
|
||||||
|
and no bisect will run.** The onset window is demoted to a true but
|
||||||
|
unreachable-by-source observation. No package activity in the window
|
||||||
|
(`pacman.log`), which is a cheap negative and not pursued further.
|
||||||
|
- **The useful product is a RELIABLE REPRODUCTION** — 10/10 across two
|
||||||
|
commits at ~4 min/run. D1/D2 no longer wait on a rare event and are
|
||||||
|
the next step. Per-run provenance in `docs/probe-sigint-evidence.md`
|
||||||
|
§D0a and `/home/jeans/build/pmacs-gate-targets/d0a/results.tsv`.
|
||||||
- **Why it exists.** `ctrl_c_on_launcher_group_does_not_reach_spawned_daemon`
|
- **Why it exists.** `ctrl_c_on_launcher_group_does_not_reach_spawned_daemon`
|
||||||
fails in gate stage `sweep-crdt` with "child did not exit within 5s".
|
fails in gate stage `sweep-crdt` with "child did not exit within 5s".
|
||||||
**Pre-existing on `main`** — `72da24a` fails it in a clean worktree
|
**Pre-existing on `main`** — `72da24a` fails it in a clean worktree
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
# GPU launcher / probe SIGINT teardown — framing
|
# GPU launcher / probe SIGINT teardown — framing
|
||||||
|
|
||||||
Revision 9. Status: **approved 2026-08-19 at `15c25ec`. No implementation.**
|
Revision 9, approved 2026-08-19 at `15c25ec`.
|
||||||
|
Status: **D0a EXECUTED — see §4b. No fix implemented; mechanism still
|
||||||
|
unknown.**
|
||||||
|
|
||||||
Revisions 1 and 2 were each rejected on five findings. Every correction
|
Revisions 1 and 2 were each rejected on five findings. Every correction
|
||||||
is recorded in place rather than quietly rewritten, because three of
|
is recorded in place rather than quietly rewritten, because three of
|
||||||
|
|
@ -267,6 +269,32 @@ rule; a bare difference decides nothing.)
|
||||||
move**, as endpoint reproduction — which is a decision procedure, not a
|
move**, as endpoint reproduction — which is a decision procedure, not a
|
||||||
prediction.
|
prediction.
|
||||||
|
|
||||||
|
## 4b. D0a result — the source hypothesis is eliminated
|
||||||
|
|
||||||
|
Executed 2026-08-19 under the approved contract: 10 runs,
|
||||||
|
counterbalanced `A B B A A B B A A B`, N = 5 per endpoint, clean
|
||||||
|
detached worktrees, isolated target directories, `dirty=0` verified per
|
||||||
|
run. **Zero voids, zero splits.**
|
||||||
|
|
||||||
|
**A (`7599661`) uniform-red. B (`724b785`) uniform-red.** By the
|
||||||
|
endpoint table this is *both endpoints uniform the same way*: the
|
||||||
|
difference is **not captured by those two commits**.
|
||||||
|
|
||||||
|
- **No bisect of `7599661..724b785` is justified, and none will run.**
|
||||||
|
`7599661` passed inside `sweep-crdt` on 08-15 and fails 5/5 clean
|
||||||
|
today, so the interval cannot contain the transition.
|
||||||
|
- **The onset window is demoted.** Still a true observation, but not
|
||||||
|
reachable by source.
|
||||||
|
- **A reliable reproduction now exists** — 10/10 today across two
|
||||||
|
commits, ~4 minutes per run. This is D0a's most useful product:
|
||||||
|
**D1/D2 no longer wait on a rare event.**
|
||||||
|
- One cheap negative on "what else changed": **no package activity in
|
||||||
|
the window** (`/var/log/pacman.log`, 08-15 19:57 → 08-16 06:33;
|
||||||
|
nearest 08-18). Not pursued further — with a reproduction in hand,
|
||||||
|
direct measurement dominates archaeology.
|
||||||
|
|
||||||
|
Per-run provenance: `docs/probe-sigint-evidence.md` §D0a.
|
||||||
|
|
||||||
## 5. Two retracted claims, both mine, kept as warnings
|
## 5. Two retracted claims, both mine, kept as warnings
|
||||||
|
|
||||||
**Claim A — "mechanism located".** Reported the launcher blocked in
|
**Claim A — "mechanism located".** Reported the launcher blocked in
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,69 @@ source/environment interaction, or a fix before `7599661` followed by a
|
||||||
regression before `724b785`. And an ancestor outside the interval is
|
regression before `724b785`. And an ancestor outside the interval is
|
||||||
irrelevant to whether the interval contains a regression.
|
irrelevant to whether the interval contains a regression.
|
||||||
|
|
||||||
|
## D0a — EXECUTED 2026-08-19. Verdict: difference NOT captured
|
||||||
|
|
||||||
|
Ten runs, counterbalanced `A B B A A B B A A B`, N = 5 per endpoint,
|
||||||
|
**zero voids, zero splits**. Endpoints checked out detached and clean
|
||||||
|
in dedicated worktrees (`pmacs-d0a-A`, `pmacs-d0a-B`), each with its own
|
||||||
|
target directory, each run performing the gate's `build-crdt`
|
||||||
|
precondition then the `sweep-crdt` command. `dirty=0` verified per run.
|
||||||
|
|
||||||
|
| run | endpoint | HEAD | class | ctrl_c ok/failed | red bins | log |
|
||||||
|
|---|---|---|---|---|---|---|
|
||||||
|
| A#1 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-1.log` |
|
||||||
|
| B#1 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-1.log` |
|
||||||
|
| B#2 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-2.log` |
|
||||||
|
| A#2 | A | `7599661` | **red** | 0 / 2 | 4 | `d0a/A-2.log` |
|
||||||
|
| A#3 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-3.log` |
|
||||||
|
| B#3 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-3.log` |
|
||||||
|
| B#4 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-4.log` |
|
||||||
|
| A#4 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-4.log` |
|
||||||
|
| A#5 | A | `7599661` | **red** | 0 / 2 | 3 | `d0a/A-5.log` |
|
||||||
|
| B#5 | B | `724b785` | **red** | 0 / 2 | 2 | `d0a/B-5.log` |
|
||||||
|
|
||||||
|
Full per-run provenance — timestamp, HEAD, dirty count, exit, both copy
|
||||||
|
results, unrelated red-bin count, Cargo suffixes, `uptime`, `free`,
|
||||||
|
`/tmp` usage, leaked-daemon count, log digest — is in
|
||||||
|
`/home/jeans/build/pmacs-gate-targets/d0a/results.tsv`.
|
||||||
|
|
||||||
|
**Endpoint verdicts: A uniform-red, B uniform-red.** By the approved
|
||||||
|
table this is the *both endpoints uniform the same way* row:
|
||||||
|
|
||||||
|
> **the difference is not captured by those two commits** under current
|
||||||
|
> conditions, and the question becomes what else changed across the
|
||||||
|
> window.
|
||||||
|
|
||||||
|
### What this settles
|
||||||
|
|
||||||
|
- **The source hypothesis is eliminated for this interval.** `7599661`
|
||||||
|
passed inside `sweep-crdt` on 08-15 and now fails **5/5** clean. No
|
||||||
|
bisect of `7599661..724b785` is justified, and none will be run.
|
||||||
|
- **The onset window is demoted as a lead.** It remains a true
|
||||||
|
observation, but since neither endpoint reproduces the old green, the
|
||||||
|
window cannot be probed by source at all.
|
||||||
|
- **A reliable reproduction now exists.** 10/10 today, on two different
|
||||||
|
commits, at ~4 minutes per run. **This is the most useful thing D0a
|
||||||
|
produced**: the mechanism diagnostics D1/D2 no longer depend on a
|
||||||
|
rare event, and can proceed immediately.
|
||||||
|
- **A's three extra failures are recorded, not swept up**:
|
||||||
|
`a54_real_daemon_real_pty_and_headless_gpu_render_one_panel_hosted_terminal`,
|
||||||
|
`one_daemon_serves_a_v21_panel_session_and_a_shipped_v20_client`, and
|
||||||
|
`m6_1_pty_mode_lifecycle_started_then_exited`. The v21/v20 row is
|
||||||
|
expected to differ at that older commit; the other two are
|
||||||
|
process/PTY-spawn rows, the same family as the target. They do not
|
||||||
|
affect classification, which reads only the two target copies.
|
||||||
|
|
||||||
|
### What it does not settle
|
||||||
|
|
||||||
|
Nothing about the mechanism. "What else changed across the window" has
|
||||||
|
one cheap negative result so far: **no package activity in the window**
|
||||||
|
(`/var/log/pacman.log` shows nothing between 08-15 19:57 and 08-16
|
||||||
|
06:33; nearest is 08-18). The `1.88` rust toolchain directory has mtime
|
||||||
|
08-15 22:39, inside the window, but the gate builds with `1.95.0`.
|
||||||
|
Neither is pursued further, because with a reliable reproduction in
|
||||||
|
hand **direct measurement (D1/D2) dominates archaeology**.
|
||||||
|
|
||||||
## D0 — re-run the matrix with captured provenance
|
## D0 — re-run the matrix with captured provenance
|
||||||
|
|
||||||
Before any §4 row is relied on for a conclusion, re-run the reductions
|
Before any §4 row is relied on for a conclusion, re-run the reductions
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue