align tick entries' tick_height with actual number of ticks in bank (#2147)

This commit is contained in:
carllin
2018-12-14 02:25:50 -08:00
committed by GitHub
parent 60f3aeb4ef
commit 6fcccedb70
3 changed files with 11 additions and 8 deletions

View File

@ -60,7 +60,7 @@ fn broadcast(
} }
if let Some(Some(last)) = ventries.last().map(|entries| entries.last()) { if let Some(Some(last)) = ventries.last().map(|entries| entries.last()) {
contains_last_tick |= Some(last.tick_height + 1) == max_tick_height && last.is_tick(); contains_last_tick |= Some(last.tick_height) == max_tick_height;
} }
inc_new_counter_info!("broadcast_service-entries_received", num_entries); inc_new_counter_info!("broadcast_service-entries_received", num_entries);
@ -198,8 +198,13 @@ fn generate_slots(
let slot_heights: Vec<u64> = p let slot_heights: Vec<u64> = p
.iter() .iter()
.map(|e| { .map(|e| {
let tick_height = if e.is_tick() {
e.tick_height
} else {
e.tick_height + 1
};
let (_, slot) = r_leader_scheduler let (_, slot) = r_leader_scheduler
.get_scheduled_leader(e.tick_height + 1) .get_scheduled_leader(tick_height)
.expect("Leader schedule should never be unknown while indexing blobs"); .expect("Leader schedule should never be unknown while indexing blobs");
slot slot
}) })
@ -449,7 +454,7 @@ mod test {
); );
for (i, mut tick) in ticks.into_iter().enumerate() { for (i, mut tick) in ticks.into_iter().enumerate() {
// Simulate the tick heights generated in poh.rs // Simulate the tick heights generated in poh.rs
tick.tick_height = start_tick_height + i as u64; tick.tick_height = start_tick_height + i as u64 + 1;
broadcast_service broadcast_service
.entry_sender .entry_sender
.send(vec![tick]) .send(vec![tick])

View File

@ -51,12 +51,10 @@ impl Poh {
let num_hashes = self.num_hashes; let num_hashes = self.num_hashes;
self.num_hashes = 0; self.num_hashes = 0;
let tick_height = self.tick_height;
self.tick_height += 1; self.tick_height += 1;
PohEntry { PohEntry {
tick_height, tick_height: self.tick_height,
num_hashes, num_hashes,
id: self.id, id: self.id,
mixin: None, mixin: None,

View File

@ -139,11 +139,11 @@ mod tests {
assert!(poh_recorder.tick().is_ok()); assert!(poh_recorder.tick().is_ok());
let e = entry_receiver.recv().unwrap(); let e = entry_receiver.recv().unwrap();
assert_eq!(e[0].tick_height, 1); assert_eq!(e[0].tick_height, 2);
assert!(poh_recorder.tick().is_ok()); assert!(poh_recorder.tick().is_ok());
let e = entry_receiver.recv().unwrap(); let e = entry_receiver.recv().unwrap();
assert_eq!(e[0].tick_height, 2); assert_eq!(e[0].tick_height, 3);
// max tick height reached // max tick height reached
assert!(poh_recorder.tick().is_err()); assert!(poh_recorder.tick().is_err());