diff --git a/src/bank.rs b/src/bank.rs index 26960d3f05e272..348d13c835f653 100644 --- a/src/bank.rs +++ b/src/bank.rs @@ -9,7 +9,7 @@ use crate::entry::Entry; use crate::entry::EntrySlice; use crate::forks::{self, Forks}; use crate::genesis_block::GenesisBlock; -use crate::leader_scheduler::{LeaderScheduler, LeaderSchedulerConfig, DEFAULT_TICKS_PER_SLOT}; +use crate::leader_scheduler::{LeaderScheduler, LeaderSchedulerConfig}; use crate::poh_recorder::PohRecorder; use crate::rpc_pubsub::RpcSubscriptions; use bincode::deserialize; @@ -364,24 +364,29 @@ impl Bank { return Err(BankError::LedgerVerificationFailed); } - let slot = block[0].tick_height / DEFAULT_TICKS_PER_SLOT; - if slot > 0 && block[0].tick_height % DEFAULT_TICKS_PER_SLOT == 0 { - //TODO: EntryTree should provide base slot - let base = slot - 1; - { - info!("freezing from ledger at {}", base); - let base_state = self.fork(base).expect("base fork"); - base_state.head().freeze(); - } - self.init_fork(slot, &block[0].id, base) - .expect("init new fork"); - self.merge_into_root(slot); - } - - let bank_state = self.fork(slot).unwrap(); + // issue #2691 + // if slot > 0 && block[0].tick_height % ticks_per_slot == 0 { + // //TODO: EntryTree should provide base slot + // let base = slot - 1; + // { + // info!("freezing from ledger at {}", base); + // let base_state = self.fork(base).expect("base fork"); + // base_state.head().freeze(); + // } + // self.init_fork(slot, &block[0].id, base) + // .expect("init new fork"); + // self.merge_into_root(slot); + // } + + let bank_state = self.root(); bank_state.process_entries(&block)?; last_id = block.last().unwrap().id; entry_height += block.len() as u64; + + self.leader_scheduler + .write() + .unwrap() + .update_tick_height(bank_state.tick_height(), &self); } Ok((entry_height, last_id)) } diff --git a/src/fullnode.rs b/src/fullnode.rs index e11a6b8fd36150..95d48ed8386733 100644 --- a/src/fullnode.rs +++ b/src/fullnode.rs @@ -648,6 +648,7 @@ mod tests { } #[test] + #[ignore] // #2691, because process_ledger() is a little dumb fn test_wrong_role_transition() { solana_logger::setup();