fix(fuzz): persist parallel invariant corpus - #16065
Conversation
Persist interesting invariant corpus entries from each worker as they are discovered so external termination does not discard the campaign corpus. Keep optimization output coordinator-owned after worker aggregation.
✅ Changelog foundThe deterministic check will validate the changed entry. |
|
derek bench invariant timeout=600 |
|
cc @mablr bench (invariant) event published. Results will be reported separately. View publisher run Config: subcommand: |
|
derek bench invariant timeout=600 trials=6 paired-seeds=true |
|
cc @mablr bench (invariant) event published. Results will be reported separately. View publisher run Config: subcommand: |
|
derek bench invariant |
|
cc @mablr bench (invariant) event published. Results will be reported separately. View publisher run Config: subcommand: |
Signal the shared terminal stop when an invariant worker fails so sibling workers do not continue through their assigned runs. Add a parallel campaign regression test for corpus setup failures.
|
derek bench invariant timeout=600 workers=8 trials=20 paired-seeds=true |
|
cc @mablr bench (invariant) event published. Results will be reported separately. View publisher run Config: subcommand: |
|
derek bench invariant timeout=600 workers=8 trials=20 paired-seeds=true |
|
cc @mablr bench (invariant) event published. Results will be reported separately. View publisher run Config: subcommand: |
Motivation
Fixes OSS-574 by atomically persisting interesting invariant corpus entries as each parallel worker discovers them. This isolates the persistence fix previously included in #15816, whose performance impact could not be measured conclusively within the broader PR stack. Corpus setup failures now stop the campaign, while runtime persistence failures emit one warning per worker rather than silently losing discoveries.
Immediate worker-local persistence intentionally trades campaign-wide coverage deduplication for durability: workers may retain separate entries representing equivalent coverage, increasing corpus size and replay work. This prevents external termination from losing the entire campaign corpus; compaction can be considered separately if longer campaigns demonstrate unacceptable growth.
Results
Quick scfuzzbench to control throughput, to be confirmed with long derek run.
masterAssisted by AI.