From b845b6d9e33bde9c7cdd7b1b394ed17b67722016 Mon Sep 17 00:00:00 2001
From: "Richard T. Carback III" <rick.carback@gmail.com>
Date: Fri, 2 Oct 2020 19:29:26 +0000
Subject: [PATCH] Revert back to original timer logic (but keep the changes to
 use timer per the docs)

---
 network/health/tracker.go | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/network/health/tracker.go b/network/health/tracker.go
index 31f903420..7e1c6141d 100644
--- a/network/health/tracker.go
+++ b/network/health/tracker.go
@@ -123,21 +123,21 @@ func (t *Tracker) start(quitCh <-chan struct{}) {
 			break
 		case heartbeat = <-t.heartbeat:
 			jww.INFO.Printf("heartbeat: %v", heartbeat)
-			// Stop and reset timer
-			if !timer.Stop() {
-				select {
-				case <-timer.C: // per docs explicitly drain
-				default:
-				}
-			}
-			timer.Reset(t.timeout)
 			if healthy(heartbeat) {
+				// Stop and reset timer
+				if !timer.Stop() {
+					select {
+					// per docs explicitly drain
+					case <-timer.C:
+					default:
+					}
+				}
+				timer.Reset(t.timeout)
 				t.setHealth(true)
 			}
 			break
 		case <-timer.C:
 			t.setHealth(false)
-			timer.Reset(t.timeout)
 			break
 		}
 	}
-- 
GitLab