Correctly compute max_tick_height when starting up a node

This commit is contained in:
Michael Vines
2019-02-12 20:56:45 -08:00
committed by Grimes
parent 1eabe66c85
commit 7118178e2c

View File

@ -199,34 +199,35 @@ impl Fullnode {
.insert_info(entrypoint_info.clone()); .insert_info(entrypoint_info.clone());
} }
let (scheduled_leader, tick_height, max_tick_height, blob_index) = { // Figure which node should generate the next tick
let tick_height = bank.tick_height(); let (scheduled_leader, max_tick_height, blob_index) = {
let next_tick = bank.tick_height() + 1;
let leader_scheduler = bank.leader_scheduler.read().unwrap(); let leader_scheduler = bank.leader_scheduler.read().unwrap();
let slot = leader_scheduler.tick_height_to_slot(tick_height + 1); let slot_at_next_tick = leader_scheduler.tick_height_to_slot(next_tick);
(
leader_scheduler let scheduled_leader = leader_scheduler
.get_leader_for_slot(slot) .get_leader_for_slot(slot_at_next_tick)
.expect("Leader not known after processing bank"), .expect("Leader not known after processing bank");
tick_height, let max_tick_height = next_tick + leader_scheduler.num_ticks_left_in_slot(next_tick);
tick_height + leader_scheduler.num_ticks_left_in_slot(tick_height), let blob_index =
{ if let Some(meta) = blocktree.meta(slot_at_next_tick).expect("Database error") {
if let Some(meta) = blocktree.meta(slot).expect("Database error") { meta.consumed
meta.consumed } else {
} else { 0
0 };
}
}, trace!(
) "node {:?} scheduled as leader for ticks ({},{}), starting blob_index={}",
scheduled_leader,
next_tick,
max_tick_height,
blob_index,
);
(scheduled_leader, max_tick_height, blob_index)
}; };
trace!(
"scheduled_leader {:?} for ticks ({}, {}), starting blob_index={}",
scheduled_leader,
tick_height,
max_tick_height,
blob_index,
);
cluster_info.write().unwrap().set_leader(scheduled_leader); cluster_info.write().unwrap().set_leader(scheduled_leader);
let sockets = Sockets { let sockets = Sockets {