From 6765453f8acfd54f8a5bc8bd5fd2b934943fc309 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2020 13:54:29 -0700 Subject: [PATCH] validator: Improve --dynamic-port-range and sys-tuner error messages (bp #9494) (#9496) automerge --- core/src/cluster_info.rs | 1 + sys-tuner/src/lib.rs | 8 +++++++- validator/src/main.rs | 16 ++++++++++++---- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/core/src/cluster_info.rs b/core/src/cluster_info.rs index 0f3e98f375..9eb0f57297 100644 --- a/core/src/cluster_info.rs +++ b/core/src/cluster_info.rs @@ -65,6 +65,7 @@ use std::{ }; pub const VALIDATOR_PORT_RANGE: PortRange = (8000, 10_000); +pub const MINIMUM_VALIDATOR_PORT_RANGE_WIDTH: u16 = 10; // VALIDATOR_PORT_RANGE must be at least this wide /// The Data plane fanout size, also used as the neighborhood size pub const DATA_PLANE_FANOUT: usize = 200; diff --git a/sys-tuner/src/lib.rs b/sys-tuner/src/lib.rs index 9e8068c425..7cc123ac64 100644 --- a/sys-tuner/src/lib.rs +++ b/sys-tuner/src/lib.rs @@ -6,7 +6,13 @@ pub const SOLANA_SYS_TUNER_PATH: &str = "/tmp/solana-sys-tuner"; pub fn request_realtime_poh() { info!("Sending tuning request"); let status = unix_socket::UnixStream::connect(SOLANA_SYS_TUNER_PATH); - info!("Tuning request status {:?}", status); + match status { + Ok(_) => info!("Successfully sent tuning request"), + Err(err) => warn!( + "Failed to send tuning request, is `solana-sys-tuner` running? {:?}", + err + ), + } } #[cfg(not(unix))] diff --git a/validator/src/main.rs b/validator/src/main.rs index ea95af1e89..82ad81ab65 100644 --- a/validator/src/main.rs +++ b/validator/src/main.rs @@ -14,7 +14,7 @@ use solana_core::ledger_cleanup_service::{ DEFAULT_MAX_LEDGER_SHREDS, DEFAULT_MIN_MAX_LEDGER_SHREDS, }; use solana_core::{ - cluster_info::{ClusterInfo, Node, VALIDATOR_PORT_RANGE}, + cluster_info::{ClusterInfo, Node, MINIMUM_VALIDATOR_PORT_RANGE_WIDTH, VALIDATOR_PORT_RANGE}, contact_info::ContactInfo, gossip_service::GossipService, rpc::JsonRpcConfig, @@ -52,8 +52,16 @@ fn port_validator(port: String) -> Result<(), String> { } fn port_range_validator(port_range: String) -> Result<(), String> { - if solana_net_utils::parse_port_range(&port_range).is_some() { - Ok(()) + if let Some((start, end)) = solana_net_utils::parse_port_range(&port_range) { + if end - start < MINIMUM_VALIDATOR_PORT_RANGE_WIDTH { + Err(format!( + "Port range is too small. Try --dynamic-port-range {}-{}", + start, + start + MINIMUM_VALIDATOR_PORT_RANGE_WIDTH + )) + } else { + Ok(()) + } } else { Err("Invalid port range".to_string()) } @@ -514,7 +522,7 @@ pub fn main() { .value_name("PORT") .takes_value(true) .validator(port_validator) - .help("RPC port to use for this node"), + .help("Use this port for JSON RPC, and the next port for the RPC websocket"), ) .arg( Arg::with_name("private_rpc")