cacher: dispatchEvents is synced to watchCache.listResourceVersion
The internal informer populates the RV as soon as it conducts The first successful sync with the underlying store. The cache must wait until this first sync is completed to be deemed ready. Since we cannot send a bookmark when the lastProcessedResourceVersion is 0, we poll aggressively for the first list RV before entering the dispatch loop. Kubernetes-commit: a20abdb1f425b215ce969ef7114281741fce249d
This commit is contained in:
parent
948099599c
commit
175dd7c904
|
|
@ -912,10 +912,10 @@ func (c *Cacher) dispatchEvents() {
|
|||
// The first successful sync with the underlying store.
|
||||
// The cache must wait until this first sync is completed to be deemed ready.
|
||||
// Since we cannot send a bookmark when the lastProcessedResourceVersion is 0,
|
||||
// we poll aggressively for the first RV before entering the dispatch loop.
|
||||
// we poll aggressively for the first list RV before entering the dispatch loop.
|
||||
lastProcessedResourceVersion := uint64(0)
|
||||
if err := wait.PollUntilContextCancel(wait.ContextForChannel(c.stopCh), 10*time.Millisecond, true, func(_ context.Context) (bool, error) {
|
||||
if rv := c.watchCache.getResourceVersion(); rv != 0 {
|
||||
if rv := c.watchCache.getListResourceVersion(); rv != 0 {
|
||||
lastProcessedResourceVersion = rv
|
||||
return true, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -644,10 +644,10 @@ func (w *watchCache) Resync() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (w *watchCache) getResourceVersion() uint64 {
|
||||
func (w *watchCache) getListResourceVersion() uint64 {
|
||||
w.RLock()
|
||||
defer w.RUnlock()
|
||||
return w.resourceVersion
|
||||
return w.listResourceVersion
|
||||
}
|
||||
|
||||
func (w *watchCache) currentCapacity() int {
|
||||
|
|
|
|||
Loading…
Reference in New Issue