Skip to content

fix(pxe): guard private event store rollback against in-flight jobs#22615

Merged
nchamo merged 1 commit intomerge-train/fairiesfrom
fix/private-event-store-rollback-guard
Apr 17, 2026
Merged

fix(pxe): guard private event store rollback against in-flight jobs#22615
nchamo merged 1 commit intomerge-train/fairiesfrom
fix/private-event-store-rollback-guard

Conversation

@nchamo
Copy link
Copy Markdown
Contributor

@nchamo nchamo commented Apr 16, 2026

Problem

PrivateEventStore.rollback() did not check for in-flight jobs before rolling back persisted data. If a chain-pruned event triggered a rollback while a job had staged events in memory (#eventsForJob), the rollback would clear persisted data but leave staged data intact. When the job later committed, it would re-introduce invalidated data from pruned blocks.

NoteStore already had this guard, but PrivateEventStore was missing it.

Fix

  • Added the same #eventsForJob.size > 0 check to PrivateEventStore.rollback() that NoteStore already uses, throwing if jobs are in progress.
  • Fixed a pre-existing bug in the rollback test that used mismatched job IDs (stored under 'test', committed under 'before-rollback').
  • Added a test for the new guard, mirroring the equivalent test in NoteStore.

Fixes https://github.com/AztecProtocol/aztec-claude/issues/305

@nchamo nchamo self-assigned this Apr 16, 2026
@nchamo nchamo requested a review from Thunkar April 16, 2026 18:43
@nchamo nchamo merged commit 9ae8a24 into merge-train/fairies Apr 17, 2026
12 checks passed
@nchamo nchamo deleted the fix/private-event-store-rollback-guard branch April 17, 2026 10:52
@AztecBot
Copy link
Copy Markdown
Collaborator

✅ Successfully backported to backport-to-v4-next-staging #22580.

github-merge-queue bot pushed a commit that referenced this pull request Apr 17, 2026
BEGIN_COMMIT_OVERRIDE
fix(pxe): stop block synchronizer on PXE shutdown (#22604)
fix(aztec): respect TEST_ACCOUNTS env var in local network mode (#22600)
fix: check all aztec-nr dependency tags, not just aztec (#22483)
fix: reuse anchor block in kernel oracle (#22631)
refactor: unify contract compilation pipeline via bb aztec_process
(#22590)
fix(pxe): queue registerSender wipe to avoid racing with in-flight jobs
(#22623)
fix(pxe): bounds-check PropertySelector in pick_notes (#22614)
fix(pxe): guard private event store rollback against in-flight jobs
(#22615)
refactor(pxe): rename sideEffectCounter to initialSideEffectCounter
(#22599)
fix(pxe): correct stale authwitness comment and inverted tagging error
(#22537)
fix(aztec-nr): range-check auth witness fields before byte cast (#22624)
fix(pxe): serialize block stream event handling to prevent race
conditions (#22635)
fix(pxe): throw error on origin/contract address mismatch in simulation
(#22637)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants