diff --git a/service/worker/pernamespaceworker.go b/service/worker/pernamespaceworker.go index c6efd8b5c0e..bc975b86ef3 100644 --- a/service/worker/pernamespaceworker.go +++ b/service/worker/pernamespaceworker.go @@ -207,13 +207,17 @@ func (wm *perNamespaceWorkerManager) namespaceCallback(ns *namespace.Namespace, go wm.getWorkerByNamespace(ns).refreshWithNewNamespace(ns, deleted) } +func (wm *perNamespaceWorkerManager) refreshAll() { + wm.lock.Lock() + defer wm.lock.Unlock() + for _, worker := range wm.workers { + go worker.refreshWithExistingNamespace() + } +} + func (wm *perNamespaceWorkerManager) membershipChangedListener() { for range wm.membershipChangedCh { - wm.lock.Lock() - for _, worker := range wm.workers { - go worker.refreshWithExistingNamespace() - } - wm.lock.Unlock() + wm.refreshAll() } } diff --git a/service/worker/service.go b/service/worker/service.go index 4afe7ac4477..efee4a541c2 100644 --- a/service/worker/service.go +++ b/service/worker/service.go @@ -565,3 +565,8 @@ func (s *Service) ensureSystemNamespaceExists( ) } } + +// This is intended for use by integration tests only. +func (s *Service) RefreshPerNSWorkerManager() { + s.perNamespaceWorkerManager.refreshAll() +} diff --git a/tests/dynamicconfig.go b/tests/dynamicconfig.go index b5fca93bd33..394a544ccde 100644 --- a/tests/dynamicconfig.go +++ b/tests/dynamicconfig.go @@ -81,6 +81,12 @@ func (d *dcClient) OverrideValue(name dynamicconfig.Key, value any) { d.overrides[name] = value } +func (d *dcClient) RemoveOverride(name dynamicconfig.Key) { + d.Lock() + defer d.Unlock() + delete(d.overrides, name) +} + // newTestDCClient - returns a dynamic config client for integration testing func newTestDCClient(fallback dynamicconfig.Client) *dcClient { return &dcClient{