-
Notifications
You must be signed in to change notification settings - Fork 809
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
Withdrawals root on "inconsistent" attestation verification states #4234
Comments
I'm having a go at option (2) over in #4235. |
It turns out that (2) doesn't work since we can't just load the target state when the shuffling epoch is beyond the shuffling lookahead of the epoch of Looks like we'll still need to do (1) regardless of whether not not we merge #4235. |
Hi @paulhauner , I'd like to look into this one. |
## Issue Addressed Addresses #4234 ## Proposed Changes - Skip withdrawals processing in an inconsistent state replay. - Repurpose `StateRootStrategy`: rename to `StateProcessingStrategy` and always skip withdrawals if using `StateProcessingStrategy::Inconsistent` - Add a test to reproduce the scenario Co-authored-by: Jimmy Chen <jimmy@sigmaprime.io>
Resolved via #4249 🎉 |
## Issue Addressed Addresses sigp#4234 ## Proposed Changes - Skip withdrawals processing in an inconsistent state replay. - Repurpose `StateRootStrategy`: rename to `StateProcessingStrategy` and always skip withdrawals if using `StateProcessingStrategy::Inconsistent` - Add a test to reproduce the scenario Co-authored-by: Jimmy Chen <jimmy@sigmaprime.io>
Addresses sigp#4234 - Skip withdrawals processing in an inconsistent state replay. - Repurpose `StateRootStrategy`: rename to `StateProcessingStrategy` and always skip withdrawals if using `StateProcessingStrategy::Inconsistent` - Add a test to reproduce the scenario Co-authored-by: Jimmy Chen <jimmy@sigmaprime.io>
Addresses sigp#4234 - Skip withdrawals processing in an inconsistent state replay. - Repurpose `StateRootStrategy`: rename to `StateProcessingStrategy` and always skip withdrawals if using `StateProcessingStrategy::Inconsistent` - Add a test to reproduce the scenario Co-authored-by: Jimmy Chen <jimmy@sigmaprime.io>
Description
On April 24 we saw this log across our mainnet SigP fleet:
This is an attestation from the network failing verification due to a
BlockProcessingError::WithdrawalsRootMismatch
error. That error indicates that we were unable to recreate theBeaconState
we need to process that attestation; it is an internal error in the category of "should never happen".An initial diagnosis from @michaelsproul was:
I agree with his diagnosis but I don't believe anyone has proved it yet (e.g. with a unit test).
In detail, I believe the sequence of events is:
get_inconsistent_state_for_attestation_verification_only
, which loads a state from the DB and does an "inconsistent" version of state processing.Potential Solutions
I see two potential solutions:
(1) is the simplest solution, I think it's fairly easy to reason that it's correct. (2) is more complicated but perhaps a better solution because it (a) avoids doing unnecessary work and (b) potentially avoids other issues like this one in the future.
The text was updated successfully, but these errors were encountered: