diff --git a/pkg/client/cache/reflector.go b/pkg/client/cache/reflector.go index 5bcf6836f82..cae47dfcdd2 100644 --- a/pkg/client/cache/reflector.go +++ b/pkg/client/cache/reflector.go @@ -259,12 +259,16 @@ func (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error { r.setLastSyncResourceVersion(resourceVersion) resyncerrc := make(chan error, 1) + cancelCh := make(chan struct{}) + defer close(cancelCh) go func() { for { select { case <-resyncCh: case <-stopCh: return + case <-cancelCh: + return } glog.V(4).Infof("%s: forcing resync", r.name) if err := r.store.Resync(); err != nil {