removes VoteTracker::new in favor of VoteTracker::default (#22941)
VoteTracker::new does not need a bank and is so redundant: https://github.com/solana-labs/solana/blob/5a230f418/core/src/cluster_info_vote_listener.rs#L103-L107
This commit is contained in:
parent
5a230f418d
commit
27aaf9df85
|
@ -100,12 +100,6 @@ pub struct VoteTracker {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl VoteTracker {
|
impl VoteTracker {
|
||||||
pub(crate) fn new(root_bank: &Bank) -> Self {
|
|
||||||
let vote_tracker = VoteTracker::default();
|
|
||||||
vote_tracker.progress_with_new_root_bank(root_bank);
|
|
||||||
vote_tracker
|
|
||||||
}
|
|
||||||
|
|
||||||
fn get_or_insert_slot_tracker(&self, slot: Slot) -> Arc<RwLock<SlotVoteTracker>> {
|
fn get_or_insert_slot_tracker(&self, slot: Slot) -> Arc<RwLock<SlotVoteTracker>> {
|
||||||
if let Some(slot_vote_tracker) = self.slot_vote_trackers.read().unwrap().get(&slot) {
|
if let Some(slot_vote_tracker) = self.slot_vote_trackers.read().unwrap().get(&slot) {
|
||||||
return slot_vote_tracker.clone();
|
return slot_vote_tracker.clone();
|
||||||
|
@ -540,17 +534,14 @@ impl ClusterInfoVoteListener {
|
||||||
let mut sel = Select::new();
|
let mut sel = Select::new();
|
||||||
sel.recv(gossip_vote_txs_receiver);
|
sel.recv(gossip_vote_txs_receiver);
|
||||||
sel.recv(replay_votes_receiver);
|
sel.recv(replay_votes_receiver);
|
||||||
let mut remaining_wait_time = 200;
|
let mut remaining_wait_time = Duration::from_millis(200);
|
||||||
loop {
|
while remaining_wait_time > Duration::ZERO {
|
||||||
if remaining_wait_time == 0 {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
// Wait for one of the receivers to be ready. `ready_timeout`
|
// Wait for one of the receivers to be ready. `ready_timeout`
|
||||||
// will return if channels either have something, or are
|
// will return if channels either have something, or are
|
||||||
// disconnected. `ready_timeout` can wake up spuriously,
|
// disconnected. `ready_timeout` can wake up spuriously,
|
||||||
// hence the loop
|
// hence the loop
|
||||||
let _ = sel.ready_timeout(Duration::from_millis(remaining_wait_time))?;
|
let _ = sel.ready_timeout(remaining_wait_time)?;
|
||||||
|
|
||||||
// Should not early return from this point onwards until `process_votes()`
|
// Should not early return from this point onwards until `process_votes()`
|
||||||
// returns below to avoid missing any potential `optimistic_confirmed_slots`
|
// returns below to avoid missing any potential `optimistic_confirmed_slots`
|
||||||
|
@ -568,10 +559,8 @@ impl ClusterInfoVoteListener {
|
||||||
bank_notification_sender,
|
bank_notification_sender,
|
||||||
cluster_confirmed_slot_sender,
|
cluster_confirmed_slot_sender,
|
||||||
));
|
));
|
||||||
} else {
|
|
||||||
remaining_wait_time = remaining_wait_time
|
|
||||||
.saturating_sub(std::cmp::max(start.elapsed().as_millis() as u64, 1));
|
|
||||||
}
|
}
|
||||||
|
remaining_wait_time = remaining_wait_time.saturating_sub(start.elapsed());
|
||||||
}
|
}
|
||||||
Ok(vec![])
|
Ok(vec![])
|
||||||
}
|
}
|
||||||
|
@ -1374,7 +1363,7 @@ mod tests {
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let bank_forks = Arc::new(RwLock::new(BankForks::new(bank)));
|
let bank_forks = Arc::new(RwLock::new(BankForks::new(bank)));
|
||||||
let bank = bank_forks.read().unwrap().get(0).unwrap().clone();
|
let bank = bank_forks.read().unwrap().get(0).unwrap().clone();
|
||||||
let vote_tracker = VoteTracker::new(&bank);
|
let vote_tracker = VoteTracker::default();
|
||||||
let optimistically_confirmed_bank =
|
let optimistically_confirmed_bank =
|
||||||
OptimisticallyConfirmedBank::locked_from_bank_forks_root(&bank_forks);
|
OptimisticallyConfirmedBank::locked_from_bank_forks_root(&bank_forks);
|
||||||
let max_complete_transaction_status_slot = Arc::new(AtomicU64::default());
|
let max_complete_transaction_status_slot = Arc::new(AtomicU64::default());
|
||||||
|
@ -1481,7 +1470,7 @@ mod tests {
|
||||||
vec![100; validator_voting_keypairs.len()],
|
vec![100; validator_voting_keypairs.len()],
|
||||||
);
|
);
|
||||||
let bank = Bank::new_for_tests(&genesis_config);
|
let bank = Bank::new_for_tests(&genesis_config);
|
||||||
let vote_tracker = VoteTracker::new(&bank);
|
let vote_tracker = VoteTracker::default();
|
||||||
let exit = Arc::new(AtomicBool::new(false));
|
let exit = Arc::new(AtomicBool::new(false));
|
||||||
let bank_forks = Arc::new(RwLock::new(BankForks::new(bank)));
|
let bank_forks = Arc::new(RwLock::new(BankForks::new(bank)));
|
||||||
let bank = bank_forks.read().unwrap().get(0).unwrap().clone();
|
let bank = bank_forks.read().unwrap().get(0).unwrap().clone();
|
||||||
|
|
|
@ -4478,7 +4478,7 @@ pub mod tests {
|
||||||
// runs in `update_propagation_status`
|
// runs in `update_propagation_status`
|
||||||
assert!(!progress_map.get_leader_propagation_slot_must_exist(10).0);
|
assert!(!progress_map.get_leader_propagation_slot_must_exist(10).0);
|
||||||
|
|
||||||
let vote_tracker = VoteTracker::new(&bank_forks.root_bank());
|
let vote_tracker = VoteTracker::default();
|
||||||
vote_tracker.insert_vote(10, vote_pubkey);
|
vote_tracker.insert_vote(10, vote_pubkey);
|
||||||
ReplayStage::update_propagation_status(
|
ReplayStage::update_propagation_status(
|
||||||
&mut progress_map,
|
&mut progress_map,
|
||||||
|
@ -4563,7 +4563,7 @@ pub mod tests {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
let vote_tracker = VoteTracker::new(&bank_forks.root_bank());
|
let vote_tracker = VoteTracker::default();
|
||||||
for vote_pubkey in &vote_pubkeys {
|
for vote_pubkey in &vote_pubkeys {
|
||||||
// Insert a vote for the last bank for each voter
|
// Insert a vote for the last bank for each voter
|
||||||
vote_tracker.insert_vote(10, *vote_pubkey);
|
vote_tracker.insert_vote(10, *vote_pubkey);
|
||||||
|
@ -4650,7 +4650,7 @@ pub mod tests {
|
||||||
progress_map.insert(i, fork_progress);
|
progress_map.insert(i, fork_progress);
|
||||||
}
|
}
|
||||||
|
|
||||||
let vote_tracker = VoteTracker::new(&bank_forks.root_bank());
|
let vote_tracker = VoteTracker::default();
|
||||||
// Insert a new vote
|
// Insert a new vote
|
||||||
vote_tracker.insert_vote(10, vote_pubkeys[2]);
|
vote_tracker.insert_vote(10, vote_pubkeys[2]);
|
||||||
|
|
||||||
|
|
|
@ -504,7 +504,7 @@ pub mod tests {
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
Arc::new(VoteTracker::new(&bank)),
|
Arc::<VoteTracker>::default(),
|
||||||
retransmit_slots_sender,
|
retransmit_slots_sender,
|
||||||
gossip_verified_vote_hash_receiver,
|
gossip_verified_vote_hash_receiver,
|
||||||
verified_vote_receiver,
|
verified_vote_receiver,
|
||||||
|
|
|
@ -96,7 +96,6 @@ use {
|
||||||
std::{
|
std::{
|
||||||
collections::{HashMap, HashSet},
|
collections::{HashMap, HashSet},
|
||||||
net::SocketAddr,
|
net::SocketAddr,
|
||||||
ops::Deref,
|
|
||||||
path::{Path, PathBuf},
|
path::{Path, PathBuf},
|
||||||
sync::{
|
sync::{
|
||||||
atomic::{AtomicBool, AtomicU64, Ordering},
|
atomic::{AtomicBool, AtomicU64, Ordering},
|
||||||
|
@ -805,10 +804,7 @@ impl Validator {
|
||||||
"New shred signal for the TVU should be the same as the clear bank signal."
|
"New shred signal for the TVU should be the same as the clear bank signal."
|
||||||
);
|
);
|
||||||
|
|
||||||
let vote_tracker = Arc::new(VoteTracker::new(
|
let vote_tracker = Arc::<VoteTracker>::default();
|
||||||
bank_forks.read().unwrap().root_bank().deref(),
|
|
||||||
));
|
|
||||||
|
|
||||||
let mut cost_model = CostModel::default();
|
let mut cost_model = CostModel::default();
|
||||||
cost_model.initialize_cost_table(&blockstore.read_program_costs().unwrap());
|
cost_model.initialize_cost_table(&blockstore.read_program_costs().unwrap());
|
||||||
let cost_model = Arc::new(RwLock::new(cost_model));
|
let cost_model = Arc::new(RwLock::new(cost_model));
|
||||||
|
|
Loading…
Reference in New Issue