From f951d7d33f8b2039958bf2f32c6c53371e353e47 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 4 May 2020 14:40:58 -0700 Subject: [PATCH] Avoid panic caused by converting non-positive / non-normal floating points values to duration (#9867) (#9871) automerge --- cli/src/cluster_query.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/cli/src/cluster_query.rs b/cli/src/cluster_query.rs index 62c036573f..64c9ccdd35 100644 --- a/cli/src/cluster_query.rs +++ b/cli/src/cluster_query.rs @@ -395,14 +395,13 @@ pub fn process_catchup( let slot_distance = rpc_slot as i64 - node_slot as i64; let slots_per_second = (previous_slot_distance - slot_distance) as f64 / f64::from(sleep_interval); - let time_remaining = if slots_per_second <= 0.0 { + let time_remaining = (slot_distance as f64 / slots_per_second).round(); + let time_remaining = if !time_remaining.is_normal() || time_remaining <= 0.0 { "".to_string() } else { format!( ". Time remaining: {}", - humantime::format_duration(Duration::from_secs_f64( - (slot_distance as f64 / slots_per_second).round() - )) + humantime::format_duration(Duration::from_secs_f64(time_remaining)) ) };