ci: make Deep Fuzzing actually run 8 hours per target#33
Conversation
The job was named "Deep Fuzzing (8 hours)" but the inline command ran `timeout 1800 cargo fuzz run ... -max_total_time=1800` — 30 minutes, not 8 hours. The name promised one thing, the runtime delivered ~6% of it. Changes: - timeout / -max_total_time: 1800s (30m) → 28800s (8h) - Step name: "30 minutes per target" → "8 hours per target" - Add `timeout-minutes: 540` (9h) so the job-level cap doesn't preempt the 8h fuzz; default is 360 (6h), which would kill it. Wall-time estimate: with up to 12 parallel ARC runners and 16 targets, ~11h per nightly cron. Fits inside the 24h cron cycle; the existing `cancel-in-progress` concurrency rule still protects against overlap.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR extends the timeout configuration for the deep-fuzz security job in GitHub Actions. The job-level timeout is set to 540 minutes, and the fuzz execution timeout per target is increased from 30 minutes to 8 hours (28800 seconds) with matching documentation updates. ChangesDeep Fuzz Timeout Configuration
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Summary
The
Deep Fuzzing (8 hours)job has been running 30 minutes per target, not 8 hours. Job name and step name lied about the actual fuzz duration.So nightly fuzzing has been delivering ~6% of the depth the dashboard suggests. For a crate doing AES-256-GCM + HKDF + LZ4 with PyO3 FFI consumers, this matters — short fuzz runs only find shallow bugs.
Changes
timeoutand-max_total_time: 1800s → 28800s (30 min → 8 h)timeout-minutes: 540(9 h) at job level — GitHub Actions defaults to 360 (6 h), which would kill the 8-hour fuzz at the 6-hour mark.Wall-time impact
With ARC scaling 0-12 parallel runners and 16 fuzz targets, ⌈16/12⌉ × 8h ≈ 11 h wall time per nightly cron. Fits inside the 24 h cron cycle; existing
cancel-in-progressconcurrency rule already protects against overlap if a run drags long.Quick Fuzz (corpus-only smoke test) stays at 120 s — that's the PR-time check and should stay fast.
Test plan
if: github.event_name == 'schedule')Summary by CodeRabbit