Context
Audit in docs/v1-rc1-test-audit.md §2.
FuzzReadFrame (components/receivers/pyspy/fuzz_test.go:31) runs the pyspy wire-protocol decoder against RFC-0009 §wire-protocol adversarial seeds. The PR gate runs it for 30 s as part of make ci — finds shallow mutations only. The parallel NCCL FR fuzzer has a 10-min nightly soak (.github/workflows/nccl-fr-fuzz-nightly.yml); pyspy doesn't.
Fix
Add .github/workflows/pyspy-framing-fuzz-nightly.yml mirroring nccl-fr-fuzz-nightly.yml exactly:
- Cron
17 6 * * * (or offset to avoid both fuzz jobs running simultaneously).
make target test-extras-fuzz-pyspy-framing (new — cd components/receivers/pyspy && go test -run=^$ -fuzz=^FuzzReadFrame$ -fuzztime=10m).
- On failure, upload
components/receivers/pyspy/testdata/fuzz/FuzzReadFrame/ as a workflow artefact.
Acceptance
- New workflow file present + green on first scheduled run.
make test-extras-fuzz-pyspy-framing exists and is documented in Makefile.
- Crash-corpus upload on failure verified by intentionally injecting a regression then reverting.
Effort
S (~2 hours — copy the nccl-fr-fuzz workflow + adjust paths).
Context
Audit in
docs/v1-rc1-test-audit.md§2.FuzzReadFrame(components/receivers/pyspy/fuzz_test.go:31) runs the pyspy wire-protocol decoder against RFC-0009 §wire-protocol adversarial seeds. The PR gate runs it for 30 s as part ofmake ci— finds shallow mutations only. The parallel NCCL FR fuzzer has a 10-min nightly soak (.github/workflows/nccl-fr-fuzz-nightly.yml); pyspy doesn't.Fix
Add
.github/workflows/pyspy-framing-fuzz-nightly.ymlmirroringnccl-fr-fuzz-nightly.ymlexactly:17 6 * * *(or offset to avoid both fuzz jobs running simultaneously).maketargettest-extras-fuzz-pyspy-framing(new —cd components/receivers/pyspy && go test -run=^$ -fuzz=^FuzzReadFrame$ -fuzztime=10m).components/receivers/pyspy/testdata/fuzz/FuzzReadFrame/as a workflow artefact.Acceptance
make test-extras-fuzz-pyspy-framingexists and is documented inMakefile.Effort
S (~2 hours — copy the nccl-fr-fuzz workflow + adjust paths).