From 8c8a4ba705c4881b6c8b912f66ca005ba5362490 Mon Sep 17 00:00:00 2001 From: Carl Date: Mon, 17 Sep 2018 16:36:04 -0700 Subject: [PATCH] debugging commit --- src/broadcast_stage.rs | 6 +++--- src/write_stage.rs | 15 ++++++++------- tests/multinode.rs | 3 +-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/broadcast_stage.rs b/src/broadcast_stage.rs index c9417c402c..58658c43ea 100644 --- a/src/broadcast_stage.rs +++ b/src/broadcast_stage.rs @@ -302,7 +302,7 @@ mod tests { entries: Vec, } - fn setup_dummy_broadcast_stage() -> DummyBroadcastStage { + fn setup_dummy_broadcast_stage(leader_rotation_interval: u64) -> DummyBroadcastStage { // Setup dummy leader info let leader_keypair = Keypair::new(); let my_id = leader_keypair.pubkey(); @@ -316,6 +316,7 @@ mod tests { // Fill the crdt with the buddy's info let mut crdt = Crdt::new(leader_info.info.clone()).expect("Crdt::new"); crdt.insert(&broadcast_buddy.info); + crdt.set_leader_rotation_interval(leader_rotation_interval); let crdt = Arc::new(RwLock::new(crdt)); let blob_recycler = BlobRecycler::default(); @@ -367,11 +368,10 @@ mod tests { #[test] fn test_broadcast_stage_leader_rotation_exit() { - let broadcast_info = setup_dummy_broadcast_stage(); let leader_rotation_interval = 10; + let broadcast_info = setup_dummy_broadcast_stage(leader_rotation_interval); { let mut wcrdt = broadcast_info.crdt.write().unwrap(); - wcrdt.set_leader_rotation_interval(leader_rotation_interval); // Set the leader for the next rotation to be myself wcrdt.set_scheduled_leader(leader_rotation_interval, broadcast_info.my_id); } diff --git a/src/write_stage.rs b/src/write_stage.rs index 5c3c045f46..26acb7367e 100644 --- a/src/write_stage.rs +++ b/src/write_stage.rs @@ -201,11 +201,12 @@ impl WriteStage { let leader_rotation_interval; { let rcrdt = crdt.read().unwrap(); - id = crdt.read().unwrap().id; + id = rcrdt.id; leader_rotation_interval = rcrdt.get_leader_rotation_interval(); } let mut entry_height = entry_height; loop { + info!("write_stage entry height: {}", entry_height); // Note that entry height is not zero indexed, it starts at 1, so the // old leader is in power up to and including entry height // n * leader_rotation_interval for some "n". Once we've forwarded @@ -325,13 +326,15 @@ mod tests { bank.process_ledger(entries).expect("process_ledger") } - fn setup_dummy_write_stage() -> DummyWriteStage { + fn setup_dummy_write_stage(leader_rotation_interval: u64) -> DummyWriteStage { // Setup leader info let leader_keypair = Arc::new(Keypair::new()); let my_id = leader_keypair.pubkey(); let leader_info = Node::new_localhost_with_pubkey(leader_keypair.pubkey()); - let crdt = Arc::new(RwLock::new(Crdt::new(leader_info.info).expect("Crdt::new"))); + let mut crdt = Crdt::new(leader_info.info).expect("Crdt::new"); + crdt.set_leader_rotation_interval(leader_rotation_interval); + let crdt = Arc::new(RwLock::new(crdt)); let bank = Bank::new_default(true); let bank = Arc::new(bank); let blob_recycler = BlobRecycler::default(); @@ -369,13 +372,11 @@ mod tests { #[test] fn test_write_stage_leader_rotation_exit() { - let write_stage_info = setup_dummy_write_stage(); let leader_rotation_interval = 10; + let write_stage_info = setup_dummy_write_stage(leader_rotation_interval); { let mut wcrdt = write_stage_info.crdt.write().unwrap(); - - wcrdt.set_leader_rotation_interval(leader_rotation_interval); wcrdt.set_scheduled_leader(leader_rotation_interval, write_stage_info.my_id); } @@ -420,7 +421,7 @@ mod tests { WriteStageReturnType::LeaderRotation ); - // Make sure the ledger contains exactly leader_rotation_interval entries + // Make sure the ledger contains exactly 2 * leader_rotation_interval entries let (entry_height, _) = process_ledger(&write_stage_info.leader_ledger_path, &write_stage_info.bank); remove_dir_all(write_stage_info.leader_ledger_path).unwrap(); diff --git a/tests/multinode.rs b/tests/multinode.rs index c3cdff1b41..837e14ace2 100644 --- a/tests/multinode.rs +++ b/tests/multinode.rs @@ -767,8 +767,6 @@ fn test_leader_to_validator_transition() { ); let genesis_height = entries.len() as u64; - let mut ledger_paths = Vec::new(); - ledger_paths.push(leader_ledger_path.clone()); // Start the leader node let leader_keypair = Keypair::new(); @@ -848,6 +846,7 @@ fn test_leader_to_validator_transition() { // Shut down ncp.close().unwrap(); leader.close().unwrap(); + remove_dir_all(leader_ledger_path).unwrap(); } fn mk_client(leader: &NodeInfo) -> ThinClient {