From 32f977624f8902ae4448d42ac9cf360efd5be480 Mon Sep 17 00:00:00 2001 From: Tamal Saha Date: Mon, 14 Mar 2022 14:44:58 -0700 Subject: [PATCH] Check generation to ensure index working on same object Signed-off-by: Tamal Saha --- pkg/cache/internal/cache_reader.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/cache/internal/cache_reader.go b/pkg/cache/internal/cache_reader.go index fd9beb9a95..d024d1135d 100644 --- a/pkg/cache/internal/cache_reader.go +++ b/pkg/cache/internal/cache_reader.go @@ -148,8 +148,12 @@ func (c *CacheReader) List(_ context.Context, out client.ObjectList, opts ...cli for i := range list { obj := list[i].(client.Object) key := client.ObjectKey{Namespace: obj.GetNamespace(), Name: obj.GetName()} - if _, exists := objmap[key]; exists { - numap[key] = obj + if o, exists := objmap[key]; exists { + if o.(client.Object).GetGeneration() == obj.GetGeneration() { + numap[key] = obj + } else { + return fmt.Errorf("multiple generation found in indices for %+v %s/%s", obj.GetObjectKind().GroupVersionKind(), obj.GetNamespace(), obj.GetName()) + } } } objmap = numap