Skip to content

fix(fuzz): persist parallel invariant corpus - #16065

Open
mablr wants to merge 3 commits into
masterfrom
mablr/oss-574-persist-invariant-corpus
Open

fix(fuzz): persist parallel invariant corpus#16065
mablr wants to merge 3 commits into
masterfrom
mablr/oss-574-persist-invariant-corpus

Conversation

@mablr

@mablr mablr commented Aug 7, 2026

Copy link
Copy Markdown
Member

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.

8-worker Aave v4 campaign master This PR
180s throughput 5,087 tx/s 5,999 tx/s
Corpus after termination Missing 1,593 entries / 56 MiB
Corpus replay Failed Passed in 36s

Assisted by AI.

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.
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

✅ Changelog found

The deterministic check will validate the changed entry.

@mablr

mablr commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

derek bench invariant timeout=600

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

cc @mablr

bench (invariant) event published. Results will be reported separately. View publisher run

Config: subcommand: invariant, PR SHA: 8763c83b93c7, compare-ref: master, timeout: 600s, workers: default, trials: 6, paired-seeds: false, benchmark-type: property

@mablr

mablr commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

derek bench invariant timeout=600 trials=6 paired-seeds=true

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

cc @mablr

bench (invariant) event published. Results will be reported separately. View publisher run

Config: subcommand: invariant, PR SHA: 8763c83b93c7, compare-ref: master, timeout: 600s, workers: default, trials: 6, paired-seeds: true, benchmark-type: property

@mablr

mablr commented Aug 7, 2026

Copy link
Copy Markdown
Member Author

derek bench invariant

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

cc @mablr

bench (invariant) event published. Results will be reported separately. View publisher run

Config: subcommand: invariant, PR SHA: 8763c83b93c7, compare-ref: master, timeout: 3600s, workers: default, trials: 6, paired-seeds: false, benchmark-type: property

Comment thread crates/evm/evm/src/executors/invariant/mod.rs
mattsse
mattsse previously approved these changes Aug 8, 2026

@mattsse mattsse left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

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.
@mablr

mablr commented Aug 11, 2026

Copy link
Copy Markdown
Member Author

derek bench invariant timeout=600 workers=8 trials=20 paired-seeds=true

@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

cc @mablr

bench (invariant) event published. Results will be reported separately. View publisher run

Config: subcommand: invariant, PR SHA: 78ef98cea816, compare-ref: master, timeout: 600s, workers: 8, trials: 20, paired-seeds: true, benchmark-type: property

@mablr

mablr commented Aug 14, 2026

Copy link
Copy Markdown
Member Author

derek bench invariant timeout=600 workers=8 trials=20 paired-seeds=true

@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

cc @mablr

bench (invariant) event published. Results will be reported separately. View publisher run

Config: subcommand: invariant, PR SHA: 78ef98cea816, compare-ref: master, timeout: 600s, workers: 8, trials: 20, paired-seeds: true, benchmark-type: property

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants