@ -1464,10 +1464,12 @@ impl AccountsDB {
|
|||||||
let storage = self.storage.read().unwrap();
|
let storage = self.storage.read().unwrap();
|
||||||
let mut stores: Vec<Arc<AccountStorageEntry>> = vec![];
|
let mut stores: Vec<Arc<AccountStorageEntry>> = vec![];
|
||||||
for slot in dead_slots.iter() {
|
for slot in dead_slots.iter() {
|
||||||
for store in storage.0.get(slot).unwrap().values() {
|
if let Some(slot_storage) = storage.0.get(slot) {
|
||||||
|
for store in slot_storage.values() {
|
||||||
stores.push(store.clone());
|
stores.push(store.clone());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
drop(storage);
|
drop(storage);
|
||||||
datapoint_info!("clean_dead_slots", ("stores", stores.len(), i64));
|
datapoint_info!("clean_dead_slots", ("stores", stores.len(), i64));
|
||||||
let pubkeys: Vec<Vec<Pubkey>> = {
|
let pubkeys: Vec<Vec<Pubkey>> = {
|
||||||
@ -3486,4 +3488,12 @@ pub mod tests {
|
|||||||
assert_load_account(&accounts, current_slot, pubkey2, old_lamport);
|
assert_load_account(&accounts, current_slot, pubkey2, old_lamport);
|
||||||
assert_load_account(&accounts, current_slot, dummy_pubkey, dummy_lamport);
|
assert_load_account(&accounts, current_slot, dummy_pubkey, dummy_lamport);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn clean_dead_slots_empty() {
|
||||||
|
let accounts = AccountsDB::new_single();
|
||||||
|
let mut dead_slots = HashSet::new();
|
||||||
|
dead_slots.insert(10);
|
||||||
|
accounts.clean_dead_slots(&dead_slots);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user