Get rid of unnecessary frozen banks (#3572)
This commit is contained in:
parent
3b516c0710
commit
dee5ede16d
|
@ -230,12 +230,16 @@ impl ReplayStage {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if bank_forks.read().unwrap().get(poh_slot).is_none() {
|
if bank_forks.read().unwrap().get(poh_slot).is_none() {
|
||||||
let frozen = bank_forks.read().unwrap().frozen_banks();
|
|
||||||
let parent_slot = poh_recorder.lock().unwrap().start_slot();
|
let parent_slot = poh_recorder.lock().unwrap().start_slot();
|
||||||
assert!(frozen.contains_key(&parent_slot));
|
let parent = {
|
||||||
let parent = &frozen[&parent_slot];
|
let r_bf = bank_forks.read().unwrap();
|
||||||
|
r_bf.get(parent_slot)
|
||||||
|
.expect("start slot doesn't exist in bank forks")
|
||||||
|
.clone()
|
||||||
|
};
|
||||||
|
assert!(parent.is_frozen());
|
||||||
|
|
||||||
leader_schedule_utils::slot_leader_at(poh_slot, parent)
|
leader_schedule_utils::slot_leader_at(poh_slot, &parent)
|
||||||
.map(|next_leader| {
|
.map(|next_leader| {
|
||||||
debug!(
|
debug!(
|
||||||
"me: {} leader {} at poh slot {}",
|
"me: {} leader {} at poh slot {}",
|
||||||
|
@ -255,7 +259,7 @@ impl ReplayStage {
|
||||||
influxdb::Value::Integer(grace_ticks as i64),
|
influxdb::Value::Integer(grace_ticks as i64),
|
||||||
)
|
)
|
||||||
.to_owned(),);
|
.to_owned(),);
|
||||||
let tpu_bank = Bank::new_from_parent(parent, my_id, poh_slot);
|
let tpu_bank = Bank::new_from_parent(&parent, my_id, poh_slot);
|
||||||
bank_forks.write().unwrap().insert(tpu_bank);
|
bank_forks.write().unwrap().insert(tpu_bank);
|
||||||
if let Some(tpu_bank) = bank_forks.read().unwrap().get(poh_slot).cloned() {
|
if let Some(tpu_bank) = bank_forks.read().unwrap().get(poh_slot).cloned() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|
Loading…
Reference in New Issue