From 0679db23eeeb4a9f9a86ecb67d0a4fbab7ab80d9 Mon Sep 17 00:00:00 2001 From: Brennan Date: Wed, 29 Mar 2023 08:19:30 -0700 Subject: [PATCH] Abstract RPC bootstrap gossip exit into function (#30948) --- validator/src/bootstrap.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/validator/src/bootstrap.rs b/validator/src/bootstrap.rs index e0bb70826c..559ec8962d 100644 --- a/validator/src/bootstrap.rs +++ b/validator/src/bootstrap.rs @@ -369,6 +369,16 @@ pub fn fail_rpc_node( blacklisted_rpc_nodes.insert(*rpc_id); } +fn shutdown_gossip_service( + gossip: &mut Option<(Arc, Arc, GossipService)>, +) { + if let Some((cluster_info, gossip_exit_flag, gossip_service)) = gossip.take() { + cluster_info.save_contact_info(); + gossip_exit_flag.store(true, Ordering::Relaxed); + gossip_service.join().unwrap(); + } +} + #[allow(clippy::too_many_arguments)] pub fn attempt_download_genesis_and_snapshot( rpc_contact_info: &ContactInfo, @@ -421,10 +431,7 @@ pub fn attempt_download_genesis_and_snapshot( } } - let (cluster_info, gossip_exit_flag, gossip_service) = gossip.take().unwrap(); - cluster_info.save_contact_info(); - gossip_exit_flag.store(true, Ordering::Relaxed); - gossip_service.join().unwrap(); + shutdown_gossip_service(gossip); let rpc_client_slot = rpc_client .get_slot_with_commitment(CommitmentConfig::finalized()) @@ -629,11 +636,7 @@ pub fn rpc_bootstrap( } } - if let Some((cluster_info, gossip_exit_flag, gossip_service)) = gossip.take() { - cluster_info.save_contact_info(); - gossip_exit_flag.store(true, Ordering::Relaxed); - gossip_service.join().unwrap(); - } + shutdown_gossip_service(&mut gossip); } /// Get RPC peer node candidates to download from.