From a5275f8839e1a866dfe9fde845ee1817f77b2d7b Mon Sep 17 00:00:00 2001 From: Xiang Zhu Date: Wed, 19 Apr 2023 09:37:46 -0700 Subject: [PATCH] Remove bank_snapshots_dir param (#31249) * Remove bank_snapshots_dir param * Remove outdated comment * Revert "Remove outdated comment" This reverts commit e4441432bec57edb0dc22c4bacf4d48ce26ed818. * Handle parent() error * Fix format error --- core/tests/snapshots.rs | 4 ---- runtime/src/accounts_background_service.rs | 1 - runtime/src/snapshot_package.rs | 11 ++++++----- runtime/src/snapshot_utils.rs | 9 +++------ 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/core/tests/snapshots.rs b/core/tests/snapshots.rs index 3ed678a04d..3d3607b766 100644 --- a/core/tests/snapshots.rs +++ b/core/tests/snapshots.rs @@ -246,7 +246,6 @@ fn run_bank_forks_snapshot_n( AccountsPackageType::Snapshot(SnapshotType::FullSnapshot), &last_bank, &last_bank_snapshot_info, - bank_snapshots_dir, &snapshot_config.full_snapshot_archives_dir, &snapshot_config.incremental_snapshot_archives_dir, last_bank.get_snapshot_storages(None), @@ -409,7 +408,6 @@ fn test_concurrent_snapshot_packaging( AccountsPackageType::Snapshot(SnapshotType::FullSnapshot), &bank, &bank_snapshot_info, - bank_snapshots_dir, full_snapshot_archives_dir, incremental_snapshot_archives_dir, snapshot_storages, @@ -815,7 +813,6 @@ fn make_full_snapshot_archive( snapshot_utils::package_and_archive_full_snapshot( bank, &bank_snapshot_info, - &snapshot_config.bank_snapshots_dir, &snapshot_config.full_snapshot_archives_dir, &snapshot_config.incremental_snapshot_archives_dir, bank.get_snapshot_storages(None), @@ -855,7 +852,6 @@ fn make_incremental_snapshot_archive( bank, incremental_snapshot_base_slot, &bank_snapshot_info, - &snapshot_config.bank_snapshots_dir, &snapshot_config.full_snapshot_archives_dir, &snapshot_config.incremental_snapshot_archives_dir, storages, diff --git a/runtime/src/accounts_background_service.rs b/runtime/src/accounts_background_service.rs index b6f1e0c2a7..7642cca2eb 100644 --- a/runtime/src/accounts_background_service.rs +++ b/runtime/src/accounts_background_service.rs @@ -366,7 +366,6 @@ impl SnapshotRequestHandler { accounts_package_type, &snapshot_root_bank, &bank_snapshot_info, - &self.snapshot_config.bank_snapshots_dir, &self.snapshot_config.full_snapshot_archives_dir, &self.snapshot_config.incremental_snapshot_archives_dir, snapshot_storages, diff --git a/runtime/src/snapshot_package.rs b/runtime/src/snapshot_package.rs index ae73bcedd4..0c418dc83a 100644 --- a/runtime/src/snapshot_package.rs +++ b/runtime/src/snapshot_package.rs @@ -9,7 +9,7 @@ use { snapshot_archive_info::{SnapshotArchiveInfo, SnapshotArchiveInfoGetter}, snapshot_hash::SnapshotHash, snapshot_utils::{ - self, ArchiveFormat, BankSnapshotInfo, Result, SnapshotVersion, + self, ArchiveFormat, BankSnapshotInfo, Result, SnapshotError, SnapshotVersion, SNAPSHOT_STATUS_CACHE_FILENAME, TMP_BANK_SNAPSHOT_PREFIX, }, }, @@ -55,7 +55,6 @@ impl AccountsPackage { package_type: AccountsPackageType, bank: &Bank, bank_snapshot_info: &BankSnapshotInfo, - bank_snapshots_dir: impl AsRef, full_snapshot_archives_dir: impl AsRef, incremental_snapshot_archives_dir: impl AsRef, snapshot_storages: Vec>, @@ -80,6 +79,10 @@ impl AccountsPackage { } // Hard link the snapshot into a tmpdir, to ensure its not removed prior to packaging. + 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.clone()))?; let snapshot_links = tempfile::Builder::new() .prefix(&format!("{}{}-", TMP_BANK_SNAPSHOT_PREFIX, bank.slot())) .tempdir_in(bank_snapshots_dir)?; @@ -91,9 +94,7 @@ impl AccountsPackage { let snapshot_path = bank_snapshot_info.snapshot_path(); let file_name = snapshot_utils::path_to_file_name_str(&snapshot_path)?; fs::hard_link(&snapshot_path, snapshot_hardlink_dir.join(file_name))?; - let status_cache_path = bank_snapshot_info - .snapshot_dir - .join(SNAPSHOT_STATUS_CACHE_FILENAME); + let status_cache_path = bank_snapshot_dir.join(SNAPSHOT_STATUS_CACHE_FILENAME); let status_cache_file_name = snapshot_utils::path_to_file_name_str(&status_cache_path)?; fs::hard_link( &status_cache_path, diff --git a/runtime/src/snapshot_utils.rs b/runtime/src/snapshot_utils.rs index 66212245cd..03f837cfd0 100644 --- a/runtime/src/snapshot_utils.rs +++ b/runtime/src/snapshot_utils.rs @@ -357,6 +357,9 @@ pub enum SnapshotError { #[error("bank_snapshot_info new_from_dir failed: {0}")] NewFromDir(#[from] SnapshotNewFromDirError), + #[error("invalid snapshot dir path: {}", .0.display())] + InvalidSnapshotDirPath(PathBuf), + #[error("invalid AppendVec path: {}", .0.display())] InvalidAppendVecPath(PathBuf), @@ -3020,7 +3023,6 @@ pub fn bank_to_full_snapshot_archive( package_and_archive_full_snapshot( bank, &bank_snapshot_info, - &temp_dir, full_snapshot_archives_dir, incremental_snapshot_archives_dir, snapshot_storages, @@ -3081,7 +3083,6 @@ pub fn bank_to_incremental_snapshot_archive( bank, full_snapshot_slot, &bank_snapshot_info, - &temp_dir, full_snapshot_archives_dir, incremental_snapshot_archives_dir, snapshot_storages, @@ -3097,7 +3098,6 @@ pub fn bank_to_incremental_snapshot_archive( pub fn package_and_archive_full_snapshot( bank: &Bank, bank_snapshot_info: &BankSnapshotInfo, - bank_snapshots_dir: impl AsRef, full_snapshot_archives_dir: impl AsRef, incremental_snapshot_archives_dir: impl AsRef, snapshot_storages: Vec>, @@ -3110,7 +3110,6 @@ pub fn package_and_archive_full_snapshot( AccountsPackageType::Snapshot(SnapshotType::FullSnapshot), bank, bank_snapshot_info, - bank_snapshots_dir, &full_snapshot_archives_dir, &incremental_snapshot_archives_dir, snapshot_storages, @@ -3149,7 +3148,6 @@ pub fn package_and_archive_incremental_snapshot( bank: &Bank, incremental_snapshot_base_slot: Slot, bank_snapshot_info: &BankSnapshotInfo, - bank_snapshots_dir: impl AsRef, full_snapshot_archives_dir: impl AsRef, incremental_snapshot_archives_dir: impl AsRef, snapshot_storages: Vec>, @@ -3164,7 +3162,6 @@ pub fn package_and_archive_incremental_snapshot( )), bank, bank_snapshot_info, - bank_snapshots_dir, &full_snapshot_archives_dir, &incremental_snapshot_archives_dir, snapshot_storages,