Clean up the outdated SnapshotPackage snapshot_links field (#31360)
* Remove snapshot_links * Change the function name from snapshot_dir to bank_snapshot_dir * Format fix * Fix test_concurrent_snapshot_packaging * Fix clippy error * Fix nits * Fix nits 2nd try * Use get_bank_snapshots_dir * Use slot_dir * Revert "Use get_bank_snapshots_dir" because get_bank_snapshots_dir is private to crate This reverts commit 1ed9b3b2c8e84689a918beee7159f63c56500a96.
This commit is contained in:
parent
58ce19446f
commit
0a2e897f16
|
@ -297,7 +297,7 @@ impl AccountsHashVerifier {
|
||||||
|
|
||||||
if let Some(snapshot_info) = &accounts_package.snapshot_info {
|
if let Some(snapshot_info) = &accounts_package.snapshot_info {
|
||||||
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
||||||
&snapshot_info.snapshot_links,
|
&snapshot_info.bank_snapshot_dir,
|
||||||
accounts_package.slot,
|
accounts_package.slot,
|
||||||
&accounts_hash_for_reserialize,
|
&accounts_hash_for_reserialize,
|
||||||
bank_incremental_snapshot_persistence.as_ref(),
|
bank_incremental_snapshot_persistence.as_ref(),
|
||||||
|
|
|
@ -285,7 +285,7 @@ mod tests {
|
||||||
archive_format: ArchiveFormat::Tar,
|
archive_format: ArchiveFormat::Tar,
|
||||||
},
|
},
|
||||||
block_height: slot,
|
block_height: slot,
|
||||||
snapshot_links: PathBuf::default(),
|
bank_snapshot_dir: PathBuf::default(),
|
||||||
snapshot_storages: Vec::default(),
|
snapshot_storages: Vec::default(),
|
||||||
snapshot_version: SnapshotVersion::default(),
|
snapshot_version: SnapshotVersion::default(),
|
||||||
snapshot_type,
|
snapshot_type,
|
||||||
|
|
|
@ -260,7 +260,7 @@ fn run_bank_forks_snapshot_n<F>(
|
||||||
let accounts_hash =
|
let accounts_hash =
|
||||||
last_bank.update_accounts_hash(CalcAccountsHashDataSource::Storages, false, false);
|
last_bank.update_accounts_hash(CalcAccountsHashDataSource::Storages, false, false);
|
||||||
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
||||||
accounts_package.snapshot_links_dir(),
|
accounts_package.bank_snapshot_dir(),
|
||||||
accounts_package.slot,
|
accounts_package.slot,
|
||||||
&accounts_hash,
|
&accounts_hash,
|
||||||
None,
|
None,
|
||||||
|
@ -523,7 +523,7 @@ fn test_concurrent_snapshot_packaging(
|
||||||
let accounts_package = real_accounts_package_receiver.try_recv().unwrap();
|
let accounts_package = real_accounts_package_receiver.try_recv().unwrap();
|
||||||
let accounts_hash = AccountsHash(Hash::default());
|
let accounts_hash = AccountsHash(Hash::default());
|
||||||
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
||||||
accounts_package.snapshot_links_dir(),
|
accounts_package.bank_snapshot_dir(),
|
||||||
accounts_package.slot,
|
accounts_package.slot,
|
||||||
&accounts_hash,
|
&accounts_hash,
|
||||||
None,
|
None,
|
||||||
|
@ -555,7 +555,7 @@ fn test_concurrent_snapshot_packaging(
|
||||||
|
|
||||||
// files were saved off before we reserialized the bank in the hacked up accounts_hash_verifier stand-in.
|
// files were saved off before we reserialized the bank in the hacked up accounts_hash_verifier stand-in.
|
||||||
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
solana_runtime::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
||||||
saved_snapshots_dir.path(),
|
saved_snapshots_dir.path().join(saved_slot.to_string()),
|
||||||
saved_slot,
|
saved_slot,
|
||||||
&AccountsHash(Hash::default()),
|
&AccountsHash(Hash::default()),
|
||||||
None,
|
None,
|
||||||
|
|
|
@ -455,13 +455,14 @@ where
|
||||||
/// write serialized bank to post file
|
/// write serialized bank to post file
|
||||||
/// return true if pre file found
|
/// return true if pre file found
|
||||||
pub fn reserialize_bank_with_new_accounts_hash(
|
pub fn reserialize_bank_with_new_accounts_hash(
|
||||||
bank_snapshots_dir: impl AsRef<Path>,
|
bank_snapshot_dir: impl AsRef<Path>,
|
||||||
slot: Slot,
|
slot: Slot,
|
||||||
accounts_hash: &AccountsHash,
|
accounts_hash: &AccountsHash,
|
||||||
incremental_snapshot_persistence: Option<&BankIncrementalSnapshotPersistence>,
|
incremental_snapshot_persistence: Option<&BankIncrementalSnapshotPersistence>,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
let bank_post = snapshot_utils::get_bank_snapshots_dir(bank_snapshots_dir, slot);
|
let bank_post = bank_snapshot_dir
|
||||||
let bank_post = bank_post.join(snapshot_utils::get_snapshot_file_name(slot));
|
.as_ref()
|
||||||
|
.join(snapshot_utils::get_snapshot_file_name(slot));
|
||||||
let bank_pre = bank_post.with_extension(BANK_SNAPSHOT_PRE_FILENAME_EXTENSION);
|
let bank_pre = bank_post.with_extension(BANK_SNAPSHOT_PRE_FILENAME_EXTENSION);
|
||||||
|
|
||||||
let mut found = false;
|
let mut found = false;
|
||||||
|
|
|
@ -320,7 +320,7 @@ fn test_bank_serialize_style(
|
||||||
|
|
||||||
if reserialize_accounts_hash || incremental_snapshot_persistence {
|
if reserialize_accounts_hash || incremental_snapshot_persistence {
|
||||||
let temp_dir = TempDir::new().unwrap();
|
let temp_dir = TempDir::new().unwrap();
|
||||||
let slot_dir = temp_dir.path().join(slot.to_string());
|
let slot_dir = snapshot_utils::get_bank_snapshots_dir(&temp_dir, slot);
|
||||||
let post_path = slot_dir.join(slot.to_string());
|
let post_path = slot_dir.join(slot.to_string());
|
||||||
let pre_path = post_path.with_extension(BANK_SNAPSHOT_PRE_FILENAME_EXTENSION);
|
let pre_path = post_path.with_extension(BANK_SNAPSHOT_PRE_FILENAME_EXTENSION);
|
||||||
std::fs::create_dir(&slot_dir).unwrap();
|
std::fs::create_dir(&slot_dir).unwrap();
|
||||||
|
@ -330,7 +330,7 @@ fn test_bank_serialize_style(
|
||||||
}
|
}
|
||||||
|
|
||||||
assert!(reserialize_bank_with_new_accounts_hash(
|
assert!(reserialize_bank_with_new_accounts_hash(
|
||||||
temp_dir.path(),
|
slot_dir,
|
||||||
slot,
|
slot,
|
||||||
&accounts_hash,
|
&accounts_hash,
|
||||||
incremental.as_ref(),
|
incremental.as_ref(),
|
||||||
|
|
|
@ -8,9 +8,7 @@ use {
|
||||||
rent_collector::RentCollector,
|
rent_collector::RentCollector,
|
||||||
snapshot_archive_info::{SnapshotArchiveInfo, SnapshotArchiveInfoGetter},
|
snapshot_archive_info::{SnapshotArchiveInfo, SnapshotArchiveInfoGetter},
|
||||||
snapshot_hash::SnapshotHash,
|
snapshot_hash::SnapshotHash,
|
||||||
snapshot_utils::{
|
snapshot_utils::{self, ArchiveFormat, BankSnapshotInfo, Result, SnapshotVersion},
|
||||||
self, ArchiveFormat, BankSnapshotInfo, Result, SnapshotError, SnapshotVersion,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
log::*,
|
log::*,
|
||||||
solana_sdk::{clock::Slot, feature_set, sysvar::epoch_schedule::EpochSchedule},
|
solana_sdk::{clock::Slot, feature_set, sysvar::epoch_schedule::EpochSchedule},
|
||||||
|
@ -75,14 +73,8 @@ impl AccountsPackage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let bank_snapshot_dir = &bank_snapshot_info.snapshot_dir;
|
|
||||||
let bank_snapshots_dir = bank_snapshot_dir
|
|
||||||
.parent()
|
|
||||||
.ok_or_else(|| SnapshotError::InvalidSnapshotDirPath(bank_snapshot_dir.to_path_buf()))?
|
|
||||||
.to_path_buf();
|
|
||||||
|
|
||||||
let snapshot_info = SupplementalSnapshotInfo {
|
let snapshot_info = SupplementalSnapshotInfo {
|
||||||
snapshot_links: bank_snapshots_dir,
|
bank_snapshot_dir: bank_snapshot_info.snapshot_dir.clone(),
|
||||||
archive_format,
|
archive_format,
|
||||||
snapshot_version,
|
snapshot_version,
|
||||||
full_snapshot_archives_dir: full_snapshot_archives_dir.as_ref().to_path_buf(),
|
full_snapshot_archives_dir: full_snapshot_archives_dir.as_ref().to_path_buf(),
|
||||||
|
@ -159,7 +151,7 @@ impl AccountsPackage {
|
||||||
rent_collector: RentCollector::default(),
|
rent_collector: RentCollector::default(),
|
||||||
is_incremental_accounts_hash_feature_enabled: bool::default(),
|
is_incremental_accounts_hash_feature_enabled: bool::default(),
|
||||||
snapshot_info: Some(SupplementalSnapshotInfo {
|
snapshot_info: Some(SupplementalSnapshotInfo {
|
||||||
snapshot_links: PathBuf::default(),
|
bank_snapshot_dir: PathBuf::default(),
|
||||||
archive_format: ArchiveFormat::Tar,
|
archive_format: ArchiveFormat::Tar,
|
||||||
snapshot_version: SnapshotVersion::default(),
|
snapshot_version: SnapshotVersion::default(),
|
||||||
full_snapshot_archives_dir: PathBuf::default(),
|
full_snapshot_archives_dir: PathBuf::default(),
|
||||||
|
@ -170,16 +162,16 @@ impl AccountsPackage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the path to the snapshot links directory
|
/// Returns the path to the snapshot dir
|
||||||
///
|
///
|
||||||
/// NOTE: This fn will panic if the AccountsPackage is of type EpochAccountsHash.
|
/// NOTE: This fn will panic if the AccountsPackage is of type EpochAccountsHash.
|
||||||
pub fn snapshot_links_dir(&self) -> &Path {
|
pub fn bank_snapshot_dir(&self) -> &Path {
|
||||||
match self.package_type {
|
match self.package_type {
|
||||||
AccountsPackageType::AccountsHashVerifier | AccountsPackageType::Snapshot(..) => self
|
AccountsPackageType::AccountsHashVerifier | AccountsPackageType::Snapshot(..) => self
|
||||||
.snapshot_info
|
.snapshot_info
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.snapshot_links
|
.bank_snapshot_dir
|
||||||
.as_path(),
|
.as_path(),
|
||||||
AccountsPackageType::EpochAccountsHash => {
|
AccountsPackageType::EpochAccountsHash => {
|
||||||
panic!("EAH accounts packages do not contain snapshot information")
|
panic!("EAH accounts packages do not contain snapshot information")
|
||||||
|
@ -200,7 +192,7 @@ impl std::fmt::Debug for AccountsPackage {
|
||||||
|
|
||||||
/// Supplemental information needed for snapshots
|
/// Supplemental information needed for snapshots
|
||||||
pub struct SupplementalSnapshotInfo {
|
pub struct SupplementalSnapshotInfo {
|
||||||
pub snapshot_links: PathBuf,
|
pub bank_snapshot_dir: PathBuf,
|
||||||
pub archive_format: ArchiveFormat,
|
pub archive_format: ArchiveFormat,
|
||||||
pub snapshot_version: SnapshotVersion,
|
pub snapshot_version: SnapshotVersion,
|
||||||
pub full_snapshot_archives_dir: PathBuf,
|
pub full_snapshot_archives_dir: PathBuf,
|
||||||
|
@ -222,7 +214,7 @@ pub enum AccountsPackageType {
|
||||||
pub struct SnapshotPackage {
|
pub struct SnapshotPackage {
|
||||||
pub snapshot_archive_info: SnapshotArchiveInfo,
|
pub snapshot_archive_info: SnapshotArchiveInfo,
|
||||||
pub block_height: Slot,
|
pub block_height: Slot,
|
||||||
pub snapshot_links: PathBuf,
|
pub bank_snapshot_dir: PathBuf,
|
||||||
pub snapshot_storages: Vec<Arc<AccountStorageEntry>>,
|
pub snapshot_storages: Vec<Arc<AccountStorageEntry>>,
|
||||||
pub snapshot_version: SnapshotVersion,
|
pub snapshot_version: SnapshotVersion,
|
||||||
pub snapshot_type: SnapshotType,
|
pub snapshot_type: SnapshotType,
|
||||||
|
@ -274,7 +266,7 @@ impl SnapshotPackage {
|
||||||
archive_format: snapshot_info.archive_format,
|
archive_format: snapshot_info.archive_format,
|
||||||
},
|
},
|
||||||
block_height: accounts_package.block_height,
|
block_height: accounts_package.block_height,
|
||||||
snapshot_links: snapshot_info.snapshot_links,
|
bank_snapshot_dir: snapshot_info.bank_snapshot_dir,
|
||||||
snapshot_storages,
|
snapshot_storages,
|
||||||
snapshot_version: snapshot_info.snapshot_version,
|
snapshot_version: snapshot_info.snapshot_version,
|
||||||
snapshot_type,
|
snapshot_type,
|
||||||
|
|
|
@ -93,7 +93,7 @@ mod tests {
|
||||||
archive_format: ArchiveFormat::Tar,
|
archive_format: ArchiveFormat::Tar,
|
||||||
},
|
},
|
||||||
block_height: slot,
|
block_height: slot,
|
||||||
snapshot_links: PathBuf::default(),
|
bank_snapshot_dir: PathBuf::default(),
|
||||||
snapshot_storages: Vec::default(),
|
snapshot_storages: Vec::default(),
|
||||||
snapshot_version: SnapshotVersion::default(),
|
snapshot_version: SnapshotVersion::default(),
|
||||||
snapshot_type,
|
snapshot_type,
|
||||||
|
|
|
@ -647,7 +647,7 @@ pub fn archive_snapshot_package(
|
||||||
)
|
)
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
let src_snapshot_dir = snapshot_package.snapshot_links.join(&slot_str);
|
let src_snapshot_dir = &snapshot_package.bank_snapshot_dir;
|
||||||
// To be a source for symlinking and archiving, the path need to be an aboslute path
|
// To be a source for symlinking and archiving, the path need to be an aboslute path
|
||||||
let src_snapshot_dir = src_snapshot_dir
|
let src_snapshot_dir = src_snapshot_dir
|
||||||
.canonicalize()
|
.canonicalize()
|
||||||
|
@ -3132,7 +3132,7 @@ pub fn package_and_archive_full_snapshot(
|
||||||
.get_accounts_hash()
|
.get_accounts_hash()
|
||||||
.expect("accounts hash is required for snapshot");
|
.expect("accounts hash is required for snapshot");
|
||||||
crate::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
crate::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
||||||
accounts_package.snapshot_links_dir(),
|
accounts_package.bank_snapshot_dir(),
|
||||||
accounts_package.slot,
|
accounts_package.slot,
|
||||||
&accounts_hash,
|
&accounts_hash,
|
||||||
None,
|
None,
|
||||||
|
@ -3217,7 +3217,7 @@ pub fn package_and_archive_incremental_snapshot(
|
||||||
};
|
};
|
||||||
|
|
||||||
crate::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
crate::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
||||||
accounts_package.snapshot_links_dir(),
|
accounts_package.bank_snapshot_dir(),
|
||||||
accounts_package.slot,
|
accounts_package.slot,
|
||||||
&accounts_hash_for_reserialize,
|
&accounts_hash_for_reserialize,
|
||||||
bank_incremental_snapshot_persistence.as_ref(),
|
bank_incremental_snapshot_persistence.as_ref(),
|
||||||
|
@ -3282,7 +3282,7 @@ pub fn create_snapshot_dirs_for_tests(
|
||||||
|
|
||||||
let snapshot_storages = bank.get_snapshot_storages(None);
|
let snapshot_storages = bank.get_snapshot_storages(None);
|
||||||
let slot_deltas = bank.status_cache.read().unwrap().root_slot_deltas();
|
let slot_deltas = bank.status_cache.read().unwrap().root_slot_deltas();
|
||||||
add_bank_snapshot(
|
let bank_snapshot_info = add_bank_snapshot(
|
||||||
&bank_snapshots_dir,
|
&bank_snapshots_dir,
|
||||||
&bank,
|
&bank,
|
||||||
&snapshot_storages,
|
&snapshot_storages,
|
||||||
|
@ -3299,7 +3299,7 @@ pub fn create_snapshot_dirs_for_tests(
|
||||||
// to construct a bank.
|
// to construct a bank.
|
||||||
assert!(
|
assert!(
|
||||||
crate::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
crate::serde_snapshot::reserialize_bank_with_new_accounts_hash(
|
||||||
&bank_snapshots_dir,
|
&bank_snapshot_info.snapshot_dir,
|
||||||
bank.slot(),
|
bank.slot(),
|
||||||
&bank.get_accounts_hash().unwrap(),
|
&bank.get_accounts_hash().unwrap(),
|
||||||
None
|
None
|
||||||
|
|
Loading…
Reference in New Issue