diff --git a/network/health/tracker.go b/network/health/tracker.go index 31f9034202a4533cb4064b6cc526111ca375b457..7e1c6141d0a35600595f377a5a1fcf1caaf1f0c4 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 } }