Skip to content

fix(fuzz): preserve pending corpus entries - #16067

Merged
mattsse merged 1 commit into
masterfrom
mablr/fuzz-pending-corpus-eviction
Aug 7, 2026
Merged

fix(fuzz): preserve pending corpus entries#16067
mattsse merged 1 commit into
masterfrom
mablr/fuzz-pending-corpus-eviction

Conversation

@mablr

@mablr mablr commented Aug 7, 2026

Copy link
Copy Markdown
Member

This follows up on #16058, which tracks corpus entries pending worker synchronization by index. Corpus eviction could remove a pending entry and its tracked index before it was delivered, allowing final synchronization to report success while silently losing the entry.

This prevents entries pending synchronization from being evicted. The protection is enabled only for stateless fuzz workers, since invariant campaigns do not use worker synchronization and must retain normal eviction behavior. Pending indices remain sorted, allowing eviction checks to use binary search without adding a linear lookup to the hot path.

The regressions verify that pending entries survive until worker fan-out while entries in non-synchronizing corpora remain evictable.

Amp was used to review the implementation and draft this PR description.

Prevent eviction from discarding entries that still need worker
synchronization, while retaining normal eviction for invariant campaigns
that do not participate in corpus sync.
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

✅ Changelog found

The deterministic check will validate the changed entry.

@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

@mattsse
mattsse merged commit f95c123 into master Aug 7, 2026
25 of 26 checks passed
@mattsse
mattsse deleted the mablr/fuzz-pending-corpus-eviction branch August 7, 2026 21:53
@github-project-automation github-project-automation Bot moved this to Done in Foundry Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants