diff --git a/tools/cache/reflector.go b/tools/cache/reflector.go index b4865a64..a97b5f98 100644 --- a/tools/cache/reflector.go +++ b/tools/cache/reflector.go @@ -295,6 +295,13 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { }() for { + // give the stopCh a chance to stop the loop, even in case of continue statements further down on errors + select { + case <-stopCh: + return nil + default: + } + timemoutseconds := int64(minWatchTimeout.Seconds() * (rand.Float64() + 1.0)) options = metav1.ListOptions{ ResourceVersion: resourceVersion,