Skip to content

fix(ci): run the fuzzer in fork mode so a known crash doesn't end the run - #32

Merged
lucf15 merged 1 commit into
mainfrom
fix/fuzz-fork-mode-ignore-known-crashes
Sep 20, 2026
Merged

lucf15 merged 1 commit into
mainfrom
fix/fuzz-fork-mode-ignore-known-crashes

Conversation

@lucf15

@lucf15 lucf15 commented Sep 20, 2026

Copy link
Copy Markdown
Owner

The nightly fuzz job has effectively never run for its intended 30-minute budget: UBSAN_OPTIONS=halt_on_error=1 kills the whole process on the first sanitizer hit, and the corpus has settled on an input that trivially rediscovers the same known third-party bug (third_party/libjpeg/jdhuff.c:529, an integer-overflow) almost every single run, ending it in seconds.

Switches to libFuzzer's fork mode (-fork=1 -ignore_crashes=1 -ignore_ooms=1 -ignore_timeouts=1): a crashing worker gets respawned instead of taking down the whole run, so real fuzzing continues for the full time budget. The trade-off: the fuzz binary itself now exits 0 even when it collected crashes, so the classification step (only fail the job if a crash implicates our own code, not a vendored dependency) now runs unconditionally instead of being gated on the fuzz step failing.

… run

UBSAN_OPTIONS=halt_on_error=1 kills the process on the first sanitizer hit,
so a single easily-rediscovered third-party bug was ending nearly every
nightly run in seconds instead of the intended 30-minute budget.
-fork=1 -ignore_crashes/-ignore_ooms/-ignore_timeouts respawns a fresh
worker after a crash instead of dying, so real fuzzing can continue.

The classification step now runs unconditionally (fuzz itself now exits
0 even when it recorded crashes) and only fails the job if one of the
collected crash artifacts actually implicates our own code.
@lucf15
lucf15 merged commit 1a826ce into main Sep 20, 2026
15 checks passed
@lucf15
lucf15 deleted the fix/fuzz-fork-mode-ignore-known-crashes branch September 20, 2026 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant