Clear progress map on squash (#3377)
This commit is contained in:
parent
94b5835738
commit
fe9e771b9b
|
@ -68,6 +68,7 @@ impl BankForks {
|
||||||
.map(|(k, _v)| *k)
|
.map(|(k, _v)| *k)
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get(&self, bank_slot: u64) -> Option<&Arc<Bank>> {
|
pub fn get(&self, bank_slot: u64) -> Option<&Arc<Bank>> {
|
||||||
self.banks.get(&bank_slot)
|
self.banks.get(&bank_slot)
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,6 +199,7 @@ impl ReplayStage {
|
||||||
);
|
);
|
||||||
if let Some(new_root) = locktower.record_vote(bank.slot()) {
|
if let Some(new_root) = locktower.record_vote(bank.slot()) {
|
||||||
bank_forks.write().unwrap().set_root(new_root);
|
bank_forks.write().unwrap().set_root(new_root);
|
||||||
|
Self::handle_new_root(&bank_forks, &mut progress);
|
||||||
}
|
}
|
||||||
locktower.update_epoch(&bank);
|
locktower.update_epoch(&bank);
|
||||||
cluster_info.write().unwrap().push_vote(vote);
|
cluster_info.write().unwrap().push_vote(vote);
|
||||||
|
@ -406,6 +407,14 @@ impl ReplayStage {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_new_root(
|
||||||
|
bank_forks: &Arc<RwLock<BankForks>>,
|
||||||
|
progress: &mut HashMap<u64, (Hash, usize)>,
|
||||||
|
) {
|
||||||
|
let r_bank_forks = bank_forks.read().unwrap();
|
||||||
|
progress.retain(|k, _| r_bank_forks.get(*k).is_some());
|
||||||
|
}
|
||||||
|
|
||||||
fn process_completed_bank(
|
fn process_completed_bank(
|
||||||
my_id: &Pubkey,
|
my_id: &Pubkey,
|
||||||
bank: Arc<Bank>,
|
bank: Arc<Bank>,
|
||||||
|
@ -636,4 +645,14 @@ mod test {
|
||||||
|
|
||||||
let _ignored = remove_dir_all(&ledger_path);
|
let _ignored = remove_dir_all(&ledger_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_handle_new_root() {
|
||||||
|
let bank0 = Bank::default();
|
||||||
|
let bank_forks = Arc::new(RwLock::new(BankForks::new(0, bank0)));
|
||||||
|
let mut progress = HashMap::new();
|
||||||
|
progress.insert(5, (Hash::default(), 0));
|
||||||
|
ReplayStage::handle_new_root(&bank_forks, &mut progress);
|
||||||
|
assert!(progress.is_empty());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue