From aff2726d6a5229f74773cc5b977a9f8123bfaf01 Mon Sep 17 00:00:00 2001 From: dubeau <28494057+dubeau@users.noreply.github.com> Date: Wed, 3 Nov 2021 02:16:37 -0400 Subject: [PATCH] fix: resource eventsource duplicate update events. Fixes #760 (#1025) (#1404) Signed-off-by: dubeau <28494057+dubeau@users.noreply.github.com> --- eventsources/sources/resource/start.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/eventsources/sources/resource/start.go b/eventsources/sources/resource/start.go index 59ee7c2f32..d3ba05439d 100644 --- a/eventsources/sources/resource/start.go +++ b/eventsources/sources/resource/start.go @@ -199,6 +199,12 @@ func (el *EventListener) StartListening(ctx context.Context, dispatch func([]byt case v1alpha1.UPDATE: handlerFuncs.UpdateFunc = func(oldObj, newObj interface{}) { log.Info("detected update event") + uNewObj := newObj.(*unstructured.Unstructured) + uOldObj := oldObj.(*unstructured.Unstructured) + if uNewObj.GetResourceVersion() == uOldObj.GetResourceVersion() { + log.Infof("rejecting update event with identical resource versions: %s", uNewObj.GetResourceVersion()) + return + } informerEventCh <- &InformerEvent{ Obj: newObj, OldObj: oldObj,