Skip to content

fix: eliminate anvil watcher warp race and false success logs#22584

Merged
just-mitch merged 1 commit into
nextfrom
mitch/fix-test-watcher-warps
Apr 15, 2026
Merged

fix: eliminate anvil watcher warp race and false success logs#22584
just-mitch merged 1 commit into
nextfrom
mitch/fix-test-watcher-warps

Conversation

@just-mitch

Copy link
Copy Markdown
Collaborator

AnvilTestWatcher runs two 200ms loops (syncDateProviderToL1IfBehind and warpTimeIfNeeded) that both issue evm_setNextBlockTimestamp against anvil. After a long idle period, they race: loop A rounds wall time with Math.ceil(wallTime / 1000) and mines a block 1s past the next slot boundary; loop B, using a cached read, then targets nextSlotTimestamp — which anvil now rejects as non-monotonic. The resulting Failed to warp ... lower than previous block's timestamp error is followed by a misleading "Slot N was missed, jumped to next slot" log even though the warp failed.

@just-mitch just-mitch enabled auto-merge April 15, 2026 19:16
@just-mitch just-mitch added this pull request to the merge queue Apr 15, 2026
Merged via the queue into next with commit 873ba67 Apr 15, 2026
29 of 33 checks passed
@just-mitch just-mitch deleted the mitch/fix-test-watcher-warps branch April 15, 2026 20:07
AztecBot pushed a commit that referenced this pull request Apr 15, 2026
AnvilTestWatcher runs two 200ms loops (syncDateProviderToL1IfBehind and
warpTimeIfNeeded) that both issue evm_setNextBlockTimestamp against
anvil. After a long idle period, they race: loop A rounds wall time with
Math.ceil(wallTime / 1000) and mines a block 1s past the next slot
boundary; loop B, using a cached read, then targets nextSlotTimestamp —
which anvil now rejects as non-monotonic. The resulting Failed to warp
... lower than previous block's timestamp error is followed by a
misleading "Slot N was missed, jumped to next slot" log even though the
warp failed.
@AztecBot

Copy link
Copy Markdown
Collaborator

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

Thunkar added a commit that referenced this pull request Apr 17, 2026
BEGIN_COMMIT_OVERRIDE
fix(pxe): cap event filter toBlock to last synced block (#22573)
fix(pxe): round tx expiration timestamp to reduce precision (#22577)
fix: eliminate anvil watcher warp race and false success logs (#22584)
refactor: aztec new and init creating 2 crates (#20681)
test: aztec new scaffold works (#20711)
feat(cli): warning if contract crate has tests (#20723)
feat(cli): auto-recompiling when aztec test is run (#20729)
feat: aztec new supporting multiple contract crates (#21007)
feat: asserts that aztec dep version matches cli (#21245)
chore: backport aztec CLI improvements to v4-next (#22587)
feat: check noir release has nargo binaries before releasing (#22551)
chore: cache chainInfo in embeddedwallet (#22592)
fix: wrap external getCapsule in transactionAsync (#22595)
fix(pxe): throw clear error for invalid comparator in pick_notes
(#22585)
refactor(aztec-nr): rename conversion fns to encode_/decode_ naming
(#22576)
feat: infrastructure for testing `[new_contract_artfiacts,
old_aztec_stack]` (#22593)
chore: fix unnecessary and inconsistent side-effect counter increments
(#22245)
fix: update FaceID wallet redirects and strip anchors in redirect
validation (#22505)
docs: add getting started on testnet guide (#22366)
docs: add getting started on testnet guide (backport #22366) (#22619)
feat(aztec-nr): new BoundedVec emit private log APIs (#22064)
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