Adds more info to panic message in AccountsHashVerifier (#35353)
This commit is contained in:
parent
a7a41e7631
commit
6aaaf858c9
|
@ -7430,6 +7430,11 @@ impl AccountsDb {
|
||||||
self.accounts_hashes.lock().unwrap().get(&slot).cloned()
|
self.accounts_hashes.lock().unwrap().get(&slot).cloned()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get all accounts hashes
|
||||||
|
pub fn get_accounts_hashes(&self) -> HashMap<Slot, (AccountsHash, /*capitalization*/ u64)> {
|
||||||
|
self.accounts_hashes.lock().unwrap().clone()
|
||||||
|
}
|
||||||
|
|
||||||
/// Set the incremental accounts hash for `slot`
|
/// Set the incremental accounts hash for `slot`
|
||||||
///
|
///
|
||||||
/// returns the previous incremental accounts hash for `slot`
|
/// returns the previous incremental accounts hash for `slot`
|
||||||
|
@ -7466,6 +7471,13 @@ impl AccountsDb {
|
||||||
.cloned()
|
.cloned()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get all incremental accounts hashes
|
||||||
|
pub fn get_incremental_accounts_hashes(
|
||||||
|
&self,
|
||||||
|
) -> HashMap<Slot, (IncrementalAccountsHash, /*capitalization*/ u64)> {
|
||||||
|
self.incremental_accounts_hashes.lock().unwrap().clone()
|
||||||
|
}
|
||||||
|
|
||||||
/// Purge accounts hashes that are older than `last_full_snapshot_slot`
|
/// Purge accounts hashes that are older than `last_full_snapshot_slot`
|
||||||
///
|
///
|
||||||
/// Should only be called by AccountsHashVerifier, since it consumes the accounts hashes and
|
/// Should only be called by AccountsHashVerifier, since it consumes the accounts hashes and
|
||||||
|
|
|
@ -297,11 +297,26 @@ impl AccountsHashVerifier {
|
||||||
else {
|
else {
|
||||||
panic!("Calculating incremental accounts hash requires a base slot");
|
panic!("Calculating incremental accounts hash requires a base slot");
|
||||||
};
|
};
|
||||||
let (base_accounts_hash, base_capitalization) = accounts_package
|
let accounts_db = &accounts_package.accounts.accounts_db;
|
||||||
.accounts
|
let Some((base_accounts_hash, base_capitalization)) =
|
||||||
.accounts_db
|
accounts_db.get_accounts_hash(base_slot)
|
||||||
.get_accounts_hash(base_slot)
|
else {
|
||||||
.expect("incremental snapshot requires accounts hash and capitalization from the full snapshot it is based on");
|
panic!(
|
||||||
|
"incremental snapshot requires accounts hash and capitalization \
|
||||||
|
from the full snapshot it is based on \n\
|
||||||
|
package: {accounts_package:?} \n\
|
||||||
|
accounts hashes: {:?} \n\
|
||||||
|
incremental accounts hashes: {:?} \n\
|
||||||
|
full snapshot archives: {:?} \n\
|
||||||
|
bank snapshots: {:?}",
|
||||||
|
accounts_db.get_accounts_hashes(),
|
||||||
|
accounts_db.get_incremental_accounts_hashes(),
|
||||||
|
snapshot_utils::get_full_snapshot_archives(
|
||||||
|
&snapshot_config.full_snapshot_archives_dir,
|
||||||
|
),
|
||||||
|
snapshot_utils::get_bank_snapshots(&snapshot_config.bank_snapshots_dir),
|
||||||
|
);
|
||||||
|
};
|
||||||
let (incremental_accounts_hash, incremental_capitalization) =
|
let (incremental_accounts_hash, incremental_capitalization) =
|
||||||
Self::_calculate_incremental_accounts_hash(accounts_package, base_slot);
|
Self::_calculate_incremental_accounts_hash(accounts_package, base_slot);
|
||||||
let bank_incremental_snapshot_persistence = BankIncrementalSnapshotPersistence {
|
let bank_incremental_snapshot_persistence = BankIncrementalSnapshotPersistence {
|
||||||
|
|
Loading…
Reference in New Issue