blockstore: relax backwards chained merkle root check for upgrades#1163
Merged
AshwinSekar merged 2 commits intoanza-xyz:masterfrom May 6, 2024
Merged
blockstore: relax backwards chained merkle root check for upgrades#1163AshwinSekar merged 2 commits intoanza-xyz:masterfrom
AshwinSekar merged 2 commits intoanza-xyz:masterfrom
Conversation
t-nelson
reviewed
May 3, 2024
Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1163 +/- ##
=========================================
- Coverage 82.1% 82.1% -0.1%
=========================================
Files 886 886
Lines 236392 236450 +58
=========================================
- Hits 194274 194264 -10
- Misses 42118 42186 +68 |
behzadnouri
approved these changes
May 5, 2024
|
Backports to the beta branch are to be avoided unless absolutely necessary for fixing bugs, security issues, and perf regressions. Changes intended for backport should be structured such that a minimum effective diff can be committed separately from any refactoring, plumbing, cleanup, etc that are not strictly necessary to achieve the goal. Any of the latter should go only into master and ride the normal stabilization schedule. Exceptions include CI/metrics changes, CLI improvements and documentation updates on a case by case basis. |
mergify Bot
pushed a commit
that referenced
this pull request
May 6, 2024
…1163) * blockstore: relax backwards chained merkle root check for upgrades * s/v1.18.12/v1.18.13 Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> --------- Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> (cherry picked from commit a645d07)
AshwinSekar
added a commit
that referenced
this pull request
May 9, 2024
…ades (backport of #1163) (#1196) blockstore: relax backwards chained merkle root check for upgrades (#1163) * blockstore: relax backwards chained merkle root check for upgrades * s/v1.18.12/v1.18.13 Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> --------- Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> (cherry picked from commit a645d07) Co-authored-by: Ashwin Sekar <ashwin@anza.xyz>
anwayde
pushed a commit
to firedancer-io/agave
that referenced
this pull request
Jul 23, 2024
…ades (backport of anza-xyz#1163) (anza-xyz#1196) blockstore: relax backwards chained merkle root check for upgrades (anza-xyz#1163) * blockstore: relax backwards chained merkle root check for upgrades * s/v1.18.12/v1.18.13 Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> --------- Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> (cherry picked from commit a645d07) Co-authored-by: Ashwin Sekar <ashwin@anza.xyz>
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.
Problem
If a validator upgrades from a version that does not contain the
MerkleRootMetacolumn in blockstore in the middle of receiving shreds for a slot we cannot assume that theMerkleRootMetaexists.Specifically, if a coding shred is received from FEC set
Nbefore the upgrade, when the first shred from FEC setN+1is received post upgrade, we will perform the backwards chained merkle root check.This check assumes that both the erasure meta and merkle root meta exists for FEC set
N.Summary of Changes
Relax this check to
warnand succeed if theMerkleRootMetais missing for the previous FEC set.The corresponding forward check already handles this case correctly.
Note: the actual results of this check are not processed until the
chained_merkle_conflict_duplicate_proofsfeature is activated. This feature will only be activated several epochs after the cluster has upgraded ensuring that there are no missingMerkleRootMetas