You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Umbrella tracking issue for the two passive M9 release gates. The M9 software is
complete (F1–F4 + differential, Miri, !Sync/dir-lock, soak harness, DoD audit §14.12.1);
what remains are the two gates that need dedicated runner time, not code. Each gate is
discharged by an evidence artifact commented onto this issue, not a checkbox — the JSON
is the sign-off. (Same discipline as the M8 gate issues.)
Both gates run from workflow_dispatch on the self-hosted fuzz-rig box. H1 power-pull is
tracked separately in #18 and is not part of this issue.
≥ 24 measured CPU-hours per target, for all four of recovery / decode / structure / model. "Measured" = real User+System CPU seconds from /usr/bin/time -v
on a taskset-pinned dedicated core — not wall-clock × cores. (Shared/hosted runners
cannot satisfy this; the gate workflow refuses them.)
Zero crash artifacts. A crash reproducer in fuzz/artifacts/<target>/ is a real
D4/D5/D11 bug, not a gate slip → see "Crash convention" below.
Baseline: hours accumulated on the current on-disk format — HEAD at/after 2b198e7
(the all-zero-header sentinel fix, the last format change). A format change resets the
clock and requires a corpus regrow + cargo fuzz cmin first (see fuzz/README.md).
Bounded-scan counter never exceeded (structural drift guard; the substantive D11 proof
is the crash-free surface above).
How to run: Actions → "Fuzz gate (self-hosted, §14.13)" → Run workflow
(hours_per_target: 24). Attach the produced evidence/fuzz_gate.json as a comment
here; verdict must read PASS.
Evidence log:
(comment fuzz_gate.json here; note the head SHA + per-target measured CPU-seconds)
Gate 2 — Soak: one multi-hour endurance run (§14.10 / §14.13)
PASS filed
Pass criteria (all must hold), over one ≥ multi-hour run:
Zero resource regression: fd count, segment-dir disk usage (incl. the per-checkpoint
disk-floor assertion — a single unreclaimed segment fails on the first cycle), RSS, and
commit-latency tails all within bound.
Zero oracle violation: the §14.3 committed-set oracle holds on every recover
(D1/D2/D3/D6/D7/D8).
How to run: Actions → "Soak (M9)" → Run workflow with runner: fuzz-rig and seconds: a multi-hour value (e.g. 21600 = 6 h). Attach the produced soak-evidence.json as a comment here.
Evidence log:
(comment soak-evidence.json here; note the duration, seed, and that no regression/oracle
breach occurred)
Crash convention (fuzz)
If the fuzz gate produces a crash artifact, it is a real bug, and this umbrella issue is not the place to resolve it:
Save the reproducer as a corpus seed.
Open a dedicated investigation issue for that specific crash (mirrors how the M8
§14.4d investigation threaded separately) — root-cause, fix, regression test.
After the fix lands, the fuzz clock restarts for that target (a parser/format change
per the "since last format change" rule) → regrow + cmin + re-run the gate.
Only a clean ≥ 24-CPU-h/target run with zero crashes discharges Gate 1 here.
Definition of done for this issue
Both boxes ticked, both evidence JSONs filed with verdict: PASS / no-regression, head SHA
recorded. At that point the §14.12.1 / §14.13 fuzz + soak rows flip from contingent
(dedicated runner) to met at <SHA>, and M9 is release-gate complete (H1 tracked
separately in #18).
M9 §14.13 release-gate evidence ledger (fuzz + soak)
Umbrella tracking issue for the two passive M9 release gates. The M9 software is
complete (F1–F4 + differential, Miri,
!Sync/dir-lock, soak harness, DoD audit §14.12.1);what remains are the two gates that need dedicated runner time, not code. Each gate is
discharged by an evidence artifact commented onto this issue, not a checkbox — the JSON
is the sign-off. (Same discipline as the M8 gate issues.)
Both gates run from
workflow_dispatchon the self-hostedfuzz-rigbox. H1 power-pull istracked separately in #18 and is not part of this issue.
Gate 1 — Fuzz: ≥ 24 CPU-hours per target (§14.5 / §14.13, D11/D4/D5)
Pass criteria (all must hold):
recovery/decode/structure/model. "Measured" = real User+System CPU seconds from/usr/bin/time -von a
taskset-pinned dedicated core — not wall-clock × cores. (Shared/hosted runnerscannot satisfy this; the gate workflow refuses them.)
fuzz/artifacts/<target>/is a realD4/D5/D11 bug, not a gate slip → see "Crash convention" below.
2b198e7(the all-zero-header sentinel fix, the last format change). A format change resets the
clock and requires a corpus regrow +
cargo fuzz cminfirst (seefuzz/README.md).is the crash-free surface above).
How to run: Actions → "Fuzz gate (self-hosted, §14.13)" → Run workflow
(
hours_per_target: 24). Attach the producedevidence/fuzz_gate.jsonas a commenthere;
verdictmust readPASS.Evidence log:
fuzz_gate.jsonhere; note the head SHA + per-target measured CPU-seconds)Gate 2 — Soak: one multi-hour endurance run (§14.10 / §14.13)
Pass criteria (all must hold), over one ≥ multi-hour run:
disk-floor assertion — a single unreclaimed segment fails on the first cycle), RSS, and
commit-latency tails all within bound.
(D1/D2/D3/D6/D7/D8).
endurance/leak detection, not a durability proof (power-loss durability is H1, M8/H1: power-pull durability — ≥50 cycles, zero acked loss (D1) #18).
How to run: Actions → "Soak (M9)" → Run workflow with
runner: fuzz-rigandseconds:a multi-hour value (e.g.21600= 6 h). Attach the producedsoak-evidence.jsonas a comment here.Evidence log:
soak-evidence.jsonhere; note the duration, seed, and that no regression/oraclebreach occurred)
Crash convention (fuzz)
If the fuzz gate produces a crash artifact, it is a real bug, and this umbrella issue is
not the place to resolve it:
§14.4d investigation threaded separately) — root-cause, fix, regression test.
per the "since last format change" rule) → regrow + cmin + re-run the gate.
Definition of done for this issue
Both boxes ticked, both evidence JSONs filed with
verdict: PASS/ no-regression, head SHArecorded. At that point the §14.12.1 / §14.13 fuzz + soak rows flip from contingent
(dedicated runner) to met at
<SHA>, and M9 is release-gate complete (H1 trackedseparately in #18).