From f992bf9d3df3abea4e6f2fa2eb6e355e8d344101 Mon Sep 17 00:00:00 2001 From: Jakub Dyszkiewicz Date: Thu, 31 Aug 2023 17:32:49 +0200 Subject: [PATCH] fix(kds): experimental watchdog concurrent map write Signed-off-by: Jakub Dyszkiewicz --- pkg/kds/v2/server/event_based_watchdog.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/kds/v2/server/event_based_watchdog.go b/pkg/kds/v2/server/event_based_watchdog.go index 025d963012bc..76e21b12af7f 100644 --- a/pkg/kds/v2/server/event_based_watchdog.go +++ b/pkg/kds/v2/server/event_based_watchdog.go @@ -7,6 +7,7 @@ import ( envoy_core "github.com/envoyproxy/go-control-plane/envoy/config/core/v3" "github.com/go-logr/logr" "github.com/prometheus/client_golang/prometheus" + "golang.org/x/exp/maps" "github.com/kumahq/kuma/pkg/core" "github.com/kumahq/kuma/pkg/core/resources/model" @@ -39,7 +40,7 @@ func (e *EventBasedWatchdog) Start(stop <-chan struct{}) { defer fullResyncTicker.Stop() // for the first reconcile assign all types - changedTypes := e.ProvidedTypes + changedTypes := maps.Clone(e.ProvidedTypes) for { select { @@ -64,7 +65,7 @@ func (e *EventBasedWatchdog) Start(stop <-chan struct{}) { } case <-fullResyncTicker.C: e.Log.V(1).Info("schedule full resync") - changedTypes = e.ProvidedTypes + changedTypes = maps.Clone(e.ProvidedTypes) case event := <-e.Listener.Recv(): resChange, ok := event.(events.ResourceChangedEvent) if !ok {