From e61b5e50a2f00ebc6e16ac1de10031897acd71cc Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 19 Feb 2021 01:15:09 +1000 Subject: [PATCH] Diagnostics for CI port conflict failures (#1766) Log a "Trying..." message before each listener opens, to see if the delay is inside Zebra, or in the test harness or OS. Also report the configured and actual ports where possible, for better diagnostics. --- zebra-network/src/peer_set/initialize.rs | 1 + zebrad/src/components/metrics.rs | 4 ++-- zebrad/src/components/tracing/endpoint.rs | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/zebra-network/src/peer_set/initialize.rs b/zebra-network/src/peer_set/initialize.rs index 363e4977..32fd3ac1 100644 --- a/zebra-network/src/peer_set/initialize.rs +++ b/zebra-network/src/peer_set/initialize.rs @@ -227,6 +227,7 @@ where S: Service<(TcpStream, SocketAddr), Response = peer::Client, Error = BoxError> + Clone, S::Future: Send + 'static, { + info!("Trying to open Zcash protocol endpoint at {}...", addr); let listener_result = TcpListener::bind(addr).await; let listener = match listener_result { diff --git a/zebrad/src/components/metrics.rs b/zebrad/src/components/metrics.rs index 15b6a22c..69bb2eeb 100644 --- a/zebrad/src/components/metrics.rs +++ b/zebrad/src/components/metrics.rs @@ -12,13 +12,13 @@ impl MetricsEndpoint { /// Create the component. pub fn new(config: &ZebradConfig) -> Result { if let Some(addr) = config.metrics.endpoint_addr { + info!("Trying to open metrics endpoint at {}...", addr); let endpoint_result = metrics_exporter_prometheus::PrometheusBuilder::new() .listen_address(addr) .install(); match endpoint_result { - Ok(endpoint) => { + Ok(()) => { info!("Opened metrics endpoint at {}", addr); - endpoint } Err(e) => panic!( "Opening metrics endpoint listener {:?} failed: {:?}. \ diff --git a/zebrad/src/components/tracing/endpoint.rs b/zebrad/src/components/tracing/endpoint.rs index fe087d3c..706a5fb7 100644 --- a/zebrad/src/components/tracing/endpoint.rs +++ b/zebrad/src/components/tracing/endpoint.rs @@ -45,6 +45,7 @@ impl TracingEndpoint { let service = make_service_fn(|_| async { Ok::<_, hyper::Error>(service_fn(request_handler)) }); + info!("Trying to open tracing endpoint at {}...", addr); tokio_component .rt .as_ref() @@ -53,10 +54,7 @@ impl TracingEndpoint { // try_bind uses the tokio runtime, so we // need to construct it inside the task. let server = match Server::try_bind(&addr) { - Ok(s) => { - info!("Opened tracing endpoint at {}", addr); - s - } + Ok(s) => s, Err(e) => panic!( "Opening tracing endpoint listener {:?} failed: {:?}. \ Hint: Check if another zebrad or zcashd process is running. \ @@ -66,6 +64,8 @@ impl TracingEndpoint { } .serve(service); + info!("Opened tracing endpoint at {}", server.local_addr()); + if let Err(e) = server.await { error!("Server error: {}", e); }