Backport writing new fields to snapshot #26394
Merged
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_signature
value 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_signature
value 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 verify
from the new snapshot