diff --git a/core/src/validator.rs b/core/src/validator.rs index 78db3aa53b..795ce7833a 100644 --- a/core/src/validator.rs +++ b/core/src/validator.rs @@ -781,35 +781,28 @@ impl Validator { } else { None }; - - let json_rpc_service = JsonRpcService::new( - rpc_addr, - config.rpc_config.clone(), - config.snapshot_config.clone(), - bank_forks.clone(), - block_commitment_cache.clone(), - blockstore.clone(), - cluster_info.clone(), - Some(poh_recorder.clone()), - genesis_config.hash(), - ledger_path, - config.validator_exit.clone(), - config.known_validators.clone(), - rpc_override_health_check.clone(), - optimistically_confirmed_bank.clone(), - config.send_transaction_service_config.clone(), - max_slots.clone(), - leader_schedule_cache.clone(), - connection_cache.clone(), - max_complete_transaction_status_slot, - ) - .unwrap_or_else(|s| { - error!("Failed to create JSON RPC Service: {}", s); - abort(); - }); - ( - Some(json_rpc_service), + Some(JsonRpcService::new( + rpc_addr, + config.rpc_config.clone(), + config.snapshot_config.clone(), + bank_forks.clone(), + block_commitment_cache.clone(), + blockstore.clone(), + cluster_info.clone(), + Some(poh_recorder.clone()), + genesis_config.hash(), + ledger_path, + config.validator_exit.clone(), + config.known_validators.clone(), + rpc_override_health_check.clone(), + optimistically_confirmed_bank.clone(), + config.send_transaction_service_config.clone(), + max_slots.clone(), + leader_schedule_cache.clone(), + connection_cache.clone(), + max_complete_transaction_status_slot, + )), if !config.rpc_config.full_api { None } else { diff --git a/rpc/src/rpc_service.rs b/rpc/src/rpc_service.rs index 792a576f1d..946ab6582f 100644 --- a/rpc/src/rpc_service.rs +++ b/rpc/src/rpc_service.rs @@ -354,7 +354,7 @@ impl JsonRpcService { leader_schedule_cache: Arc, connection_cache: Arc, current_transaction_status_slot: Arc, - ) -> Result { + ) -> Self { info!("rpc bound to {:?}", rpc_addr); info!("rpc configuration: {:?}", config); let rpc_threads = 1.max(config.rpc_threads); @@ -523,29 +523,28 @@ impl JsonRpcService { e, rpc_addr.port() ); - close_handle_sender.send(Err(e.to_string())).unwrap(); return; } let server = server.unwrap(); - close_handle_sender.send(Ok(server.close_handle())).unwrap(); + close_handle_sender.send(server.close_handle()).unwrap(); server.wait(); exit_bigtable_ledger_upload_service.store(true, Ordering::Relaxed); }) .unwrap(); - let close_handle = close_handle_receiver.recv().unwrap()?; + let close_handle = close_handle_receiver.recv().unwrap(); let close_handle_ = close_handle.clone(); validator_exit .write() .unwrap() .register_exit(Box::new(move || close_handle_.close())); - Ok(Self { + Self { thread_hdl, #[cfg(test)] request_processor: test_request_processor, close_handle: Some(close_handle), - }) + } } pub fn exit(&mut self) { @@ -639,8 +638,7 @@ mod tests { Arc::new(LeaderScheduleCache::default()), connection_cache, Arc::new(AtomicU64::default()), - ) - .unwrap(); + ); let thread = rpc_service.thread_hdl.thread(); assert_eq!(thread.name().unwrap(), "solana-jsonrpc");