From ace24a7c8230fd72f01c58e4e3823d797d1c16c1 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Fri, 10 Jun 2022 11:09:18 -0700 Subject: [PATCH] A default tower is no longer considered to contain a stray last vote --- core/src/consensus.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/consensus.rs b/core/src/consensus.rs index a5c7a4933f2abf..295d0163d82756 100644 --- a/core/src/consensus.rs +++ b/core/src/consensus.rs @@ -1038,7 +1038,7 @@ impl Tower { } pub fn is_stray_last_vote(&self) -> bool { - self.stray_restored_slot == self.last_voted_slot() + self.stray_restored_slot.is_some() && self.stray_restored_slot == self.last_voted_slot() } // The tower root can be older/newer if the validator booted from a newer/older snapshot, so @@ -3242,4 +3242,10 @@ pub mod test { assert_eq!(tower.voted_slots(), vec![13, 14]); assert_eq!(tower.stray_restored_slot, Some(14)); } + + #[test] + fn test_default_tower_has_no_stray_last_vote() { + let tower = Tower::default(); + assert!(!tower.is_stray_last_vote()); + } }