fix(fuzz): preserve tmin replay failures#15868
Open
mablr wants to merge 7 commits into
Open
Conversation
Minimization replay retained only one representative failure, allowing tmin candidates to drop secondary handler or predicate failures. Record every unique replay failure and compare the complete identity set while preserving existing cmin classification semantics.
Derive replay failure classes from the complete failure set and check afterInvariant after the final invariant predicate pass. This keeps tmin candidates that reproduce a failing afterInvariant hook.
mablr
force-pushed
the
mablr/oss-578-preserve-secondary-replay-failures
branch
from
July 23, 2026 15:54
972916a to
1e5fce9
Compare
mablr
marked this pull request as ready for review
July 23, 2026 15:55
mablr
requested review from
0xrusowsky,
DaniPopes,
figtracer,
grandizzy,
mattsse and
stevencartavia
as code owners
July 23, 2026 15:55
…ilures # Conflicts: # crates/evm/evm/src/executors/showmap.rs
Preserve every campaign-equivalent replay failure during transaction minimization. Deduplicate handler assertions by site, record fail-on-revert outcomes per invariant, and stop only after all selected predicates fail.
stevencartavia
left a comment
Member
There was a problem hiding this comment.
g2g once tests are fixed
Transaction minimization must stop at the invariant campaign boundary, while corpus minimization must replay the complete sequence for coverage. Keep those modes distinct and represent fail-on-revert outcomes separately so cmin classification and replay diagnostics remain unchanged.
Member
Author
|
@mattsse I made smol naming fix sorry |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Invariant minimization replay retained only one representative failure, allowing tmin candidates to discard secondary handler, predicate, or
afterInvariantfailures. This records every unique replay failure, derives cmin classification from that set, and requires exact baseline/candidate failure-set equality. Replay skips invariant predicates already observed during the sequence and evaluatesafterInvariantafter final predicate checks only when no predicate or hook failure was recorded.Addresses OSS-578.
This PR was written with OpenAI Codex assistance.