diff --git a/core/src/tvu.rs b/core/src/tvu.rs index 0fa619033ae3db..38e302d293def0 100644 --- a/core/src/tvu.rs +++ b/core/src/tvu.rs @@ -133,7 +133,7 @@ impl Tvu { wait_to_vote_slot: Option, accounts_background_request_sender: AbsRequestSender, log_messages_bytes_limit: Option, - connection_cache: &Arc, + connection_cache: Option<&Arc>, prioritization_fee_cache: &Arc, banking_tracer: Arc, turbine_quic_endpoint_sender: AsyncSender<(SocketAddr, Bytes)>, @@ -267,16 +267,19 @@ impl Tvu { tower_storage, ); - let warm_quic_cache_service = if connection_cache.use_quic() { - Some(WarmQuicCacheService::new( - connection_cache.clone(), - cluster_info.clone(), - poh_recorder.clone(), - exit.clone(), - )) - } else { - None - }; + let warm_quic_cache_service = connection_cache.and_then(|connection_cache| { + if connection_cache.use_quic() { + Some(WarmQuicCacheService::new( + connection_cache.clone(), + cluster_info.clone(), + poh_recorder.clone(), + exit.clone(), + )) + } else { + None + } + }); + let (cost_update_sender, cost_update_receiver) = unbounded(); let cost_update_service = CostUpdateService::new(blockstore.clone(), cost_update_receiver); @@ -486,7 +489,7 @@ pub mod tests { None, AbsRequestSender::default(), None, - &Arc::new(ConnectionCache::new("connection_cache_test")), + Some(&Arc::new(ConnectionCache::new("connection_cache_test"))), &ignored_prioritization_fee_cache, BankingTracer::new_disabled(), turbine_quic_endpoint_sender, diff --git a/core/src/validator.rs b/core/src/validator.rs index 62ef6fe37620bc..84f5d9e4970543 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -1269,7 +1269,7 @@ impl Validator { config.wait_to_vote_slot, accounts_background_request_sender, config.runtime_config.log_messages_bytes_limit, - &connection_cache, + json_rpc_service.is_some().then_some(&connection_cache), // for the cache warmer only used for STS for RPC service &prioritization_fee_cache, banking_tracer.clone(), turbine_quic_endpoint_sender.clone(),