Switch EpochSlots to be frozen slots, not completed slots (#17168)
This commit is contained in:
@ -5,6 +5,7 @@ use crate::{
|
||||
cluster_slots::ClusterSlots,
|
||||
outstanding_requests::OutstandingRequests,
|
||||
repair_weight::RepairWeight,
|
||||
replay_stage::DUPLICATE_THRESHOLD,
|
||||
result::Result,
|
||||
serve_repair::{RepairType, ServeRepair},
|
||||
};
|
||||
@ -15,9 +16,7 @@ use solana_ledger::{
|
||||
shred::Nonce,
|
||||
};
|
||||
use solana_measure::measure::Measure;
|
||||
use solana_runtime::{
|
||||
bank::Bank, bank_forks::BankForks, commitment::VOTE_THRESHOLD_SIZE, contains::Contains,
|
||||
};
|
||||
use solana_runtime::{bank::Bank, bank_forks::BankForks, contains::Contains};
|
||||
use solana_sdk::{clock::Slot, epoch_schedule::EpochSchedule, pubkey::Pubkey, timing::timestamp};
|
||||
use std::{
|
||||
collections::{HashMap, HashSet},
|
||||
@ -33,6 +32,8 @@ use std::{
|
||||
|
||||
pub type DuplicateSlotsResetSender = CrossbeamSender<Slot>;
|
||||
pub type DuplicateSlotsResetReceiver = CrossbeamReceiver<Slot>;
|
||||
pub type ConfirmedSlotsSender = CrossbeamSender<Vec<Slot>>;
|
||||
pub type ConfirmedSlotsReceiver = CrossbeamReceiver<Vec<Slot>>;
|
||||
|
||||
pub type OutstandingRepairs = OutstandingRequests<RepairType>;
|
||||
|
||||
@ -569,7 +570,7 @@ impl RepairService {
|
||||
) {
|
||||
for slot in new_duplicate_slots {
|
||||
warn!(
|
||||
"Cluster completed slot: {}, dumping our current version and repairing",
|
||||
"Cluster confirmed slot: {}, dumping our current version and repairing",
|
||||
slot
|
||||
);
|
||||
// Clear the slot signatures from status cache for this slot
|
||||
@ -641,7 +642,7 @@ impl RepairService {
|
||||
})
|
||||
.sum();
|
||||
if total_completed_slot_stake as f64 / total_stake as f64
|
||||
> VOTE_THRESHOLD_SIZE
|
||||
> DUPLICATE_THRESHOLD
|
||||
{
|
||||
Some(dead_slot)
|
||||
} else {
|
||||
@ -1059,7 +1060,7 @@ mod test {
|
||||
let serve_repair = ServeRepair::new(cluster_info.clone());
|
||||
let valid_repair_peer = Node::new_localhost().info;
|
||||
|
||||
// Signal that this peer has completed the dead slot, and is thus
|
||||
// Signal that this peer has confirmed the dead slot, and is thus
|
||||
// a valid target for repair
|
||||
let dead_slot = 9;
|
||||
let cluster_slots = ClusterSlots::default();
|
||||
|
Reference in New Issue
Block a user