docs(lane): correct the claims this held branch was still transporting

Pushing 16cf3a2 made the retraction portable but not the correction.
This ledger still carried four falsified statements, and a held branch
that transports them is worse than one that never recorded them.

  - "119 binaries green, one red" -> 119 green result summaries and TWO
    red binaries. `gpu_initial_target_acceptance` includes the suite as
    a module, so a reproducing sweep reds twice (:3097 and :3131).
  - The ">=8s lifetime" arithmetic behind the retraction is FALSE. Both
    reproducing binaries finish in ~5.19s INCLUDING the 5s timeout, so
    the failing launcher lives about 5.1s --- inside what the sampler
    saw. The ">6s selector" proposed as the remedy would have captured
    nothing. The "mechanism located" claim is therefore not refuted by
    that argument; it stays unproven because the suite spawns root
    launchers from six call sites under --features crdt, so command
    line alone cannot attribute one to this test.
  - "the probe should die on SIGINT's default action" -> withdrawn.
    Absence of handler code does not establish default disposition;
    SIG_IGN is inherited across fork and survives exec, which is why
    inherited ignore is the leading hypothesis.
  - "never blocked indefinitely" -> only the event loop is bounded, at
    50ms. The process is not: the stdin reader blocks in read_to_end
    and the loop leaves only when stdin closes.

Also records that the defect now has its own lane,
`gpu-probe-sigint-teardown`, whose framing supersedes every diagnostic
claim here, and that §5b is held behind it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
Levi Neuwirth 2026-08-18 15:36:06 +02:00
parent c1cc98ad5a
commit 6adcf17c25
No known key found for this signature in database
1 changed files with 33 additions and 31 deletions

View File

@ -474,37 +474,39 @@ from #171 and #215.
- **RESOLVED ATTRIBUTION: the sweep-crdt red is PRE-EXISTING ON - **RESOLVED ATTRIBUTION: the sweep-crdt red is PRE-EXISTING ON
MAIN.** The identical `build-crdt && sweep-crdt` pair run at the MAIN.** The identical `build-crdt && sweep-crdt` pair run at the
merge base **`72da24a`**, in the primary worktree with its own merge base **`72da24a`**, in the primary worktree with its own
target dir, fails the SAME test: 119 binaries green, one red, target dir, fails the SAME test,
`ctrl_c_on_launcher_group_does_not_reach_spawned_daemon`. **This `ctrl_c_on_launcher_group_does_not_reach_spawned_daemon`: **119
branch is not implicated**, and no branch can pass this gate stage green result summaries and TWO red binaries** —
on this machine until the underlying defect is fixed. `gpu_initial_target_acceptance` includes the suite as a module, so a
- **MECHANISM STILL NOT ESTABLISHED. The "located" claim below was reproducing sweep reds twice (`…-2144707/09-sweep-crdt.log:3097`
RETRACTED on its own evidence** — read this before trusting it. and `:3131`). **This branch is not implicated**, and no branch can
A process-table sampler ran through a reproducing sweep and caught pass this gate stage on this machine until the underlying defect is
394 distinct launchers, but the **longest-lived was 5s total**. For fixed.
this test to fail, a launcher must outlive its SIGINT by 5s, so its - **The defect now has its own lane:
total lifetime would be 8s or more. **The failing instance was `gpu-probe-sigint-teardown`** (pushed; framing revision 3 at
therefore never captured**, and the `do_wait`/`futex_do_wait` pair `docs/gpu-probe-sigint-framing.md`, run provenance at
below is a healthy launcher from one of the suite's other tests, `docs/probe-sigint-evidence.md`). **§5b is held behind it.** That
not the one that blew the deadline. The observation is kept only lane's framing supersedes every diagnostic claim below; the entries
as a description of the NORMAL teardown shape. here are kept only as the record of how it was found.
- Provisional and unconfirmed, from that sampler: - **MECHANISM STILL NOT ESTABLISHED — and the RETRACTION below was
- `pmacs --gpu --socket …` (the launcher) sits in **`do_wait`** for itself wrong.** Two corrections, in order:
the full 5s — it is waiting on a child, not ignoring the signal; - A "mechanism located" claim (launcher in `do_wait`, probe child
- `pmacs-gpu --headless-managed-probe …` (its child, same process in `futex_do_wait`) was retracted on the argument that the
group, so it received the SIGINT too) sits in failing launcher "must live 8s or more" while the sampler's
**`futex_do_wait`** and never exits. longest-lived was 5s.
- **That arithmetic is false.** Both reproducing binaries finish in
That is what a HEALTHY teardown looks like; it is not evidence **~5.19s including the 5s timeout** (`:3097`, `:3131`), so
about the failing one. Two facts do survive and constrain the next `phase=ready` lands in about a tenth of a second and the failing
attempt: `pmacs-gpu` installs **no signal handling whatsoever** launcher lives roughly **5.1s** — inside what the sampler
(grep for SIGINT/signal_hook/sigaction across `pmacs-gpu/src` observed. A ">6s selector", proposed as the remedy, would have
returns nothing), so the probe should die on SIGINT's default captured **nothing**.
action; and the probe's main loop is a 50ms `recv_timeout`, so it - So the "located" claim is **not refuted by that argument**. It
is never blocked indefinitely. **The next instrument must key on stays **unproven for a different reason**: under `--features
the failing instance specifically** — sample only launchers whose crdt` the suite spawns root launchers from **six** call sites, so
lifetime exceeds ~6s, or have the test itself record the PID and a launcher captured by command line alone cannot be attributed to
timing — rather than sampling every launcher and hoping. this test.
- **Do not key on process age. Key on the PID the test records**,
with snapshots before and after its own `kill`.
- **Five further explanations were tested and REFUTED.** Recorded so - **Five further explanations were tested and REFUTED.** Recorded so
nobody re-runs them: nobody re-runs them:
- *Machine load*: refuted. Red on a quiet machine (load 2.77 at - *Machine load*: refuted. Red on a quiet machine (load 2.77 at