Skip to content

Commit de735be

Browse files
committed
storage/cacher/cache_watcher: processInterval sets RV from the snapshot
1 parent f87e4a1 commit de735be

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

staging/src/k8s.io/apiserver/pkg/storage/cacher/cache_watcher.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,13 @@ func (c *cacheWatcher) processInterval(ctx context.Context, cacheInterval *watch
454454
const initProcessThreshold = 500 * time.Millisecond
455455
startTime := time.Now()
456456

457+
// cacheInterval may be created from a version being more fresh than requested
458+
// (e.g. for NotOlderThan semantic). In such a case, we need to prevent watch event
459+
// with lower resourceVersion from being delivered to ensure watch contract.
460+
if cacheInterval.resourceVersion > resourceVersion {
461+
resourceVersion = cacheInterval.resourceVersion
462+
}
463+
457464
initEventCount := 0
458465
for {
459466
event, err := cacheInterval.Next()

0 commit comments

Comments
 (0)