From eaa9096ac102d30bcc26cd25a6a3378824eee6ef Mon Sep 17 00:00:00 2001
From: Georgy Moshkin <gmoshkin@picodata.io>
Date: Wed, 26 Oct 2022 14:48:09 +0300
Subject: [PATCH] fix(network): used to overflow when subtracting durations
 sometimes

---
 src/traft/network.rs | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/traft/network.rs b/src/traft/network.rs
index 3a53b62573..7cc08867f4 100644
--- a/src/traft/network.rs
+++ b/src/traft/network.rs
@@ -162,9 +162,8 @@ impl PoolWorker {
                             "peer" => address,
                             "raft_id" => raft_id,
                         );
-                        cond.wait_timeout(
-                            closest_promise_timeout_or(opts.connect_timeout - iter_start.elapsed())
-                        );
+                        let timeout = opts.connect_timeout.saturating_sub(iter_start.elapsed());
+                        cond.wait_timeout(closest_promise_timeout_or(timeout));
                         continue
                     }
                 );
-- 
GitLab