diff --git a/core/src/tvu.rs b/core/src/tvu.rs index d498ab405d39aa..feaf0a9834d17c 100644 --- a/core/src/tvu.rs +++ b/core/src/tvu.rs @@ -135,7 +135,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)>, @@ -276,16 +276,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); @@ -498,7 +501,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 f725b166100bdd..6d2a9fb47af9ca 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -1306,7 +1306,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(),