From 9ea025315e4ca11dbf0b3b4c888595eeba51f8eb Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 4 Feb 2022 20:59:01 +0000 Subject: [PATCH] removes VoteTracker::new in favor of VoteTracker::default (#22941) (#22946) 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 (cherry picked from commit 27aaf9df85633b13c32d44d139528d8948141a53) Co-authored-by: behzad nouri --- core/src/cluster_info_vote_listener.rs | 23 ++++++----------------- core/src/replay_stage.rs | 6 +++--- core/src/tvu.rs | 2 +- core/src/validator.rs | 6 +----- 4 files changed, 11 insertions(+), 26 deletions(-) diff --git a/core/src/cluster_info_vote_listener.rs b/core/src/cluster_info_vote_listener.rs index fc06dff5d2..3951c3a1d1 100644 --- a/core/src/cluster_info_vote_listener.rs +++ b/core/src/cluster_info_vote_listener.rs @@ -103,12 +103,6 @@ pub struct 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> { if let Some(slot_vote_tracker) = self.slot_vote_trackers.read().unwrap().get(&slot) { return slot_vote_tracker.clone(); @@ -539,17 +533,14 @@ impl ClusterInfoVoteListener { let mut sel = Select::new(); sel.recv(gossip_vote_txs_receiver); sel.recv(replay_votes_receiver); - let mut remaining_wait_time = 200; - loop { - if remaining_wait_time == 0 { - break; - } + let mut remaining_wait_time = Duration::from_millis(200); + while remaining_wait_time > Duration::ZERO { let start = Instant::now(); // Wait for one of the receivers to be ready. `ready_timeout` // will return if channels either have something, or are // disconnected. `ready_timeout` can wake up spuriously, // 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()` // returns below to avoid missing any potential `optimistic_confirmed_slots` @@ -567,10 +558,8 @@ impl ClusterInfoVoteListener { bank_notification_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![]) } @@ -1369,7 +1358,7 @@ mod tests { let exit = Arc::new(AtomicBool::new(false)); let bank_forks = Arc::new(RwLock::new(BankForks::new(bank))); 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 = OptimisticallyConfirmedBank::locked_from_bank_forks_root(&bank_forks); let max_complete_transaction_status_slot = Arc::new(AtomicU64::default()); @@ -1476,7 +1465,7 @@ mod tests { vec![100; validator_voting_keypairs.len()], ); 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 bank_forks = Arc::new(RwLock::new(BankForks::new(bank))); let bank = bank_forks.read().unwrap().get(0).unwrap().clone(); diff --git a/core/src/replay_stage.rs b/core/src/replay_stage.rs index dc2dc0b1bb..95283a2d30 100644 --- a/core/src/replay_stage.rs +++ b/core/src/replay_stage.rs @@ -4412,7 +4412,7 @@ pub mod tests { // runs in `update_propagation_status` assert!(!progress_map.is_propagated(10)); - let vote_tracker = VoteTracker::new(&bank_forks.root_bank()); + let vote_tracker = VoteTracker::default(); vote_tracker.insert_vote(10, vote_pubkey); ReplayStage::update_propagation_status( &mut progress_map, @@ -4497,7 +4497,7 @@ pub mod tests { ); } - let vote_tracker = VoteTracker::new(&bank_forks.root_bank()); + let vote_tracker = VoteTracker::default(); for vote_pubkey in &vote_pubkeys { // Insert a vote for the last bank for each voter vote_tracker.insert_vote(10, *vote_pubkey); @@ -4584,7 +4584,7 @@ pub mod tests { progress_map.insert(i, fork_progress); } - let vote_tracker = VoteTracker::new(&bank_forks.root_bank()); + let vote_tracker = VoteTracker::default(); // Insert a new vote vote_tracker.insert_vote(10, vote_pubkeys[2]); diff --git a/core/src/tvu.rs b/core/src/tvu.rs index 32462cbc0d..3921f07b25 100644 --- a/core/src/tvu.rs +++ b/core/src/tvu.rs @@ -507,7 +507,7 @@ pub mod tests { None, None, None, - Arc::new(VoteTracker::new(&bank)), + Arc::::default(), retransmit_slots_sender, gossip_verified_vote_hash_receiver, verified_vote_receiver, diff --git a/core/src/validator.rs b/core/src/validator.rs index f4c4837660..db368b5607 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -95,7 +95,6 @@ use { std::{ collections::{HashMap, HashSet}, net::SocketAddr, - ops::Deref, path::{Path, PathBuf}, sync::{ atomic::{AtomicBool, AtomicU64, Ordering}, @@ -801,10 +800,7 @@ impl Validator { "New shred signal for the TVU should be the same as the clear bank signal." ); - let vote_tracker = Arc::new(VoteTracker::new( - bank_forks.read().unwrap().root_bank().deref(), - )); - + let vote_tracker = Arc::::default(); let mut cost_model = CostModel::default(); cost_model.initialize_cost_table(&blockstore.read_program_costs().unwrap()); let cost_model = Arc::new(RwLock::new(cost_model));