Merge pull request #20697 from wojtek-t/fix_lock_in_watch_cacher

Fix deadlock in watch cache
This commit is contained in:
Daniel Smith 2016-02-05 00:03:38 -08:00
commit 67065b8460

View File

@ -220,13 +220,13 @@ func (w *watchCache) WaitUntilFreshAndList(resourceVersion uint64) ([]interface{
}()
w.RLock()
defer w.RUnlock()
for w.resourceVersion < resourceVersion {
if w.clock.Since(startTime) >= MaximumListWait {
return nil, 0, fmt.Errorf("time limit exceeded while waiting for resource version %v (current value: %v)", resourceVersion, w.resourceVersion)
}
w.cond.Wait()
}
defer w.RUnlock()
return w.store.List(), w.resourceVersion, nil
}