Fix corrupted DB on networks where the first slot is skipped (Holesky)#4985
Merged
michaelsproul merged 3 commits intosigp:unstablefrom Dec 7, 2023
Merged
Fix corrupted DB on networks where the first slot is skipped (Holesky)#4985michaelsproul merged 3 commits intosigp:unstablefrom
michaelsproul merged 3 commits intosigp:unstablefrom
Conversation
Member
|
Reproduced the bug by backfilling a Holesky node with v4.5.0: There's that 0x0 block root! After running this PR and healing block roots we get: Fixed! |
michaelsproul
approved these changes
Dec 7, 2023
| ) | ||
| .unwrap() | ||
| .map(|r| { | ||
| println!("{r:?}"); |
Member
There was a problem hiding this comment.
lets delete this println before merging
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.
Issue Addressed
#4943 (co-authored with @michaelsproul)
Proposed Changes
There was a bug in earlier versions of Lighthouse where zero block roots are incorrectly stored before the first block slot. This happens on nodes that were checkpoint sync'd on a network that has skipped slot(s) before the first block. The additional consequence is that Lighthouse BN could return duplicate genesis blocks in
BlocksByRangeresponses.This bug was fixed in #4820, so it should not be an issue for nodes that are sync'd using v4.6.0 (next release) on Holesky. This PR contains migration script to heal the database on nodes that were checkpoint sync'd using 4.5.0, so they would no longer serve duplicate genesis blocks.
See @michaelsproul's comment here for more details.