From e332c8d8cbef30f07b74e07dc5efd18c37b7da2a Mon Sep 17 00:00:00 2001 From: Matthias Lechner Date: Wed, 31 Oct 2018 18:20:43 +0100 Subject: [PATCH] Fix error handling when query fails (#2255) --- plugin/loop/loop.go | 6 ++++++ plugin/loop/setup.go | 1 + 2 files changed, 7 insertions(+) diff --git a/plugin/loop/loop.go b/plugin/loop/loop.go index 0624d3dd1..45bdc4267 100644 --- a/plugin/loop/loop.go +++ b/plugin/loop/loop.go @@ -77,6 +77,12 @@ func (l *Loop) inc() { l.i++ } +func (l *Loop) reset() { + l.Lock() + defer l.Unlock() + l.i = 0 +} + func (l *Loop) setDisabled() { l.Lock() defer l.Unlock() diff --git a/plugin/loop/setup.go b/plugin/loop/setup.go index 93a8bb13b..ba4681cb4 100644 --- a/plugin/loop/setup.go +++ b/plugin/loop/setup.go @@ -42,6 +42,7 @@ func setup(c *caddy.Controller) error { for time.Now().Before(deadline) { if _, err := l.exchange(addr); err != nil { + l.reset() time.Sleep(1 * time.Second) continue }