This repository was archived by the owner on Jan 22, 2025. It is now read-only.
Backport writing new fields to snapshot#26394
Merged
steviez merged 2 commits intosolana-labs:v1.10from Jul 7, 2022
Merged
Conversation
Contributor
Author
|
@AshwinSekar - Is there any reason we can't include the field in newly serialized snapshots in |
Contributor
|
The reason this wasn't backported was because of this previous work #24074 that @jeffwashington backported. If we don't backport the serialization for that field then we can't serialize this one because it will get deserialized as part of the accounts db field. |
60929b6 to
6099698
Compare
Serializing and storing lamports_per_signature field is critical to avoid issues when a snapshot is taken at a slot with a non-default lamports_per_signature value. In order to keep compatibility between v1.10 and newer snapshots, we also need to serialize default values for several AccountsDB fields.
6099698 to
043c108
Compare
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
#23844 and #25364 added new fields to be serialized in snapshots. Partial backports to v1.10 were added to allow a v1.10 client to consume snapshots produced by newer clients that contain these fields.
However, we also need the
lamports_per_signaturevalue to be stored in snapshots. If this value isn't stored, we could run into issues when restarting from a snapshot that was taken at a slot where thelamports_per_signaturevalue was non-default. If the value isn't stored, we're forced to use the default on restart. If we use the default instead of what the proper value should have been, we deviate from consensus immediately. See #26069 for more info about how we debugged this.Summary of Changes
Make v1.10 serialize new fields (default for accountsdb / proper value for lamports_per_signature) into snapshots.
Fixes #26069
Testing
To test the change, I did the following with the slots that were failing in GH 26069:
solana-ledger-tool verifyfrom the new snapshot