fix(anvil): guard against the blockchain advancing while checking latest block#10714
Merged
mattsse merged 1 commit intofoundry-rs:masterfrom Jun 5, 2025
Merged
fix(anvil): guard against the blockchain advancing while checking latest block#10714mattsse merged 1 commit intofoundry-rs:masterfrom
mattsse merged 1 commit intofoundry-rs:masterfrom
Conversation
2 tasks
grandizzy
approved these changes
Jun 5, 2025
Collaborator
grandizzy
left a comment
There was a problem hiding this comment.
thank you, ooh, right, race could happen, not sure though how to test. CC @mattsse @yash-atreya mind to have a look before merging? thanks!
github-merge-queue bot
pushed a commit
to AztecProtocol/aztec-packages
that referenced
this pull request
Jun 5, 2025
Temporarily mark this Error as a flake. Once a nightly release containing foundry-rs/foundry#10714 is released we should update the anvil version used and remove this flake definition.
grandizzy
pushed a commit
to grandizzy/foundry
that referenced
this pull request
Jun 5, 2025
…est block (foundry-rs#10714) fix: guard against the blockchain advancing while checking latest block
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.
Motivation
Our tests sometimes flake with a
BlockRangeOutOfRangeErrorwhen callingeth_callwith thelatestblock tag. IIUC, this should not be possible.I had a look at the code in order to see if a newer version of Anvil would fix the flake. I think there is a race condition in this code if the call is made right as a block was being produced:
See issue #10709 for context
Solution
Instead of calling
self.best_number()twice, which could return different values if a block is built at the same time, the code now uses the pinned block at the beginning of the function.I'm not sure how best to test this fix since this is code is heavily dependent on async operations. I'd appreciate some help here :)
PR Checklist
Fix #10709