-
Notifications
You must be signed in to change notification settings - Fork 479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
StateProvider: System.InvalidOperationException: Operation is not valid due to the current state of the object. #4002
Comments
Not very knowledgeable about this issue, but running into this problem as well so doing a little digging. From looking at the file from the stack trace, could it be a race condition where one tx sets _needsStateRootUpdate = true and before RecalculateStateRoot is called, another tx tries to interact with the same object? |
@LukaszRozmej would you be able to shed some light on this maybe? |
Hi we will prioritize that after we are merge ready. |
+1 With this happening to me on simple eth_Call queries, just getting some State from a contract. |
@jamescarter-le This is similar to what I've observed. This happens only when under a lot of RPC load, but it causes fairly large problems because we see responses return incorrect/empty data. |
I have this happening under reasonably light load, covering live UniV2 and V3 swaps, nothing I would consider intense. I'll get some counter data to share. I had run master branch over this DB set, and before that had not experienced this issue. I am resyncing a new DB that should be finished tomorrow for me to check if that displays the same issue. I have implemented a retry, but main issue for me is eth_estimateGas failing. I am syncing Geth also to compare. |
I might have found the root cause, but would be grateful for any feedback if it works for you. Packages are here: https://github.com/NethermindEth/nethermind/actions/runs/2381291605 I can build a docker image if needed. |
Thank you @LukaszRozmej ! Definitely happy to test. If you can build a docker image, that would be fantastic. |
This looks like it has fixed my issue, will continue to monitor. |
@jamescarter-le keep me posted we would include it in next release if it works |
I've been running this version since this morning and had only 1 instance of this being thrown, but this was from my own Tracer plugin that uses BlockchainBridge, likely unrelated. Been able to throw many RPC requests and hundreds of eth_estimateGas calls through with no issue. |
Thank you so much @LukaszRozmej ! This seems super promising. Will test the docker image |
Hey @LukaszRozmej - thanks for the fix! We (Audius) were able to test this w one of our Nethermind nodes and rotate into load - it works! No |
This was release on 1.13.1 |
Describe the bug
A clear and concise description of what the bug is.
Running an RPC node. Seems like a race condition(?) of StateProvider, only seeing when under heavy load. This happens intermittently/nondeterministicly
Looking into trying to reproduce more consistently and investigating what's putting the StateProvider in a bad state, will follow up.
To Reproduce
Steps to reproduce the behavior:
Don't have a good deterministic repro here.
Expected behavior
A clear and concise description of what you expected to happen.
No error on an
eth_call
Additional context
Add any other context about the problem here.
Full log:
The text was updated successfully, but these errors were encountered: