From 63324be5b3997a4dbc3d5bcd14d807eee1f90d53 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Sat, 5 Mar 2022 17:34:26 +0100 Subject: [PATCH] Remove last_full_snapshot_slot return value when it can be derived by the caller --- ledger/src/bank_forks_utils.rs | 26 ++++++++++++-------------- ledger/src/blockstore_processor.rs | 4 ++-- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/ledger/src/bank_forks_utils.rs b/ledger/src/bank_forks_utils.rs index 2a0575707..0d40d4c44 100644 --- a/ledger/src/bank_forks_utils.rs +++ b/ledger/src/bank_forks_utils.rs @@ -2,8 +2,8 @@ use { crate::{ blockstore::Blockstore, blockstore_processor::{ - self, BlockstoreProcessorError, CacheBlockMetaSender, - ProcessOptions, TransactionStatusSender, + self, BlockstoreProcessorError, CacheBlockMetaSender, ProcessOptions, + TransactionStatusSender, }, leader_schedule_cache::LeaderScheduleCache, }, @@ -72,7 +72,7 @@ pub fn load( false }; - let (bank_forks, last_full_snapshot_slot, starting_snapshot_hashes) = if snapshot_present { + let (bank_forks, starting_snapshot_hashes) = if snapshot_present { bank_forks_from_snapshot( genesis_config, account_paths, @@ -103,7 +103,6 @@ pub fn load( accounts_update_notifier, ), None, - None, ) }; @@ -115,10 +114,11 @@ pub fn load( cache_block_meta_sender, snapshot_config, accounts_package_sender, - last_full_snapshot_slot, ) .map( |(bank_forks, leader_schedule_cache, last_full_snapshot_slot)| { + let last_full_snapshot_slot = + last_full_snapshot_slot.or_else(|| starting_snapshot_hashes.map(|x| x.full.hash.0)); ( bank_forks, leader_schedule_cache, @@ -137,7 +137,7 @@ fn bank_forks_from_snapshot( snapshot_config: &SnapshotConfig, process_options: &ProcessOptions, accounts_update_notifier: Option, -) -> (BankForks, Option, Option) { +) -> (BankForks, Option) { // Fail hard here if snapshot fails to load, don't silently continue if account_paths.is_empty() { error!("Account paths not present when booting from snapshot"); @@ -168,7 +168,7 @@ fn bank_forks_from_snapshot( deserialized_bank.set_shrink_paths(shrink_paths); } - let starting_full_snapshot_hash = FullSnapshotHash { + let full_snapshot_hash = FullSnapshotHash { hash: ( full_snapshot_archive_info.slot(), *full_snapshot_archive_info.hash(), @@ -177,22 +177,20 @@ fn bank_forks_from_snapshot( let starting_incremental_snapshot_hash = incremental_snapshot_archive_info.map(|incremental_snapshot_archive_info| { IncrementalSnapshotHash { - base: starting_full_snapshot_hash.hash, + base: full_snapshot_hash.hash, hash: ( incremental_snapshot_archive_info.slot(), *incremental_snapshot_archive_info.hash(), ), } }); - let starting_snapshot_hashes = Some(StartingSnapshotHashes { - full: starting_full_snapshot_hash, + let starting_snapshot_hashes = StartingSnapshotHashes { + full: full_snapshot_hash, incremental: starting_incremental_snapshot_hash, - }); - let last_full_snapshot_slot = Some(full_snapshot_archive_info.slot()); + }; ( BankForks::new(deserialized_bank), - last_full_snapshot_slot, - starting_snapshot_hashes, + Some(starting_snapshot_hashes), ) } diff --git a/ledger/src/blockstore_processor.rs b/ledger/src/blockstore_processor.rs index c5b668fcf..72c875613 100644 --- a/ledger/src/blockstore_processor.rs +++ b/ledger/src/blockstore_processor.rs @@ -590,7 +590,6 @@ pub fn test_process_blockstore( None, None, accounts_package_sender, - None, ) .unwrap() } @@ -639,7 +638,6 @@ pub(crate) fn process_blockstore_from_root( cache_block_meta_sender: Option<&CacheBlockMetaSender>, snapshot_config: Option<&SnapshotConfig>, accounts_package_sender: AccountsPackageSender, - mut last_full_snapshot_slot: Option, ) -> BlockstoreProcessorResult { if let Some(num_threads) = opts.override_num_threads { PAR_THREAD_POOL.with(|pool| { @@ -699,6 +697,8 @@ pub(crate) fn process_blockstore_from_root( leader_schedule_cache.set_max_schedules(std::usize::MAX); } + let mut last_full_snapshot_slot = None; + if let Some(start_slot_meta) = blockstore .meta(start_slot) .unwrap_or_else(|_| panic!("Failed to get meta for slot {}", start_slot))