From af48c1ec7c7ea522f05aa34c4b463189d169f351 Mon Sep 17 00:00:00 2001 From: Steve Kuznetsov Date: Tue, 8 Aug 2023 08:18:03 -0600 Subject: [PATCH] queueinformer: don't double register informers The abstraction here doesn't let you re-use an informer without also causing it to be re-registered and re-started, which is invalid. Signed-off-by: Steve Kuznetsov --- pkg/lib/queueinformer/queueinformer_operator.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/lib/queueinformer/queueinformer_operator.go b/pkg/lib/queueinformer/queueinformer_operator.go index 9320168a9e..ecdb4eb896 100644 --- a/pkg/lib/queueinformer/queueinformer_operator.go +++ b/pkg/lib/queueinformer/queueinformer_operator.go @@ -141,6 +141,12 @@ func (o *operator) RegisterInformer(informer cache.SharedIndexInformer) error { } func (o *operator) registerInformer(informer cache.SharedIndexInformer) { + // never double-register an informer + for i := range o.informers { + if o.informers[i] == informer { + return + } + } o.informers = append(o.informers, informer) o.addHasSynced(informer.HasSynced) }