From 3c56fd8da0e1f2195d9c8eca342e002fd1dd6277 Mon Sep 17 00:00:00 2001 From: Santiago Date: Thu, 13 Oct 2022 10:01:28 -0300 Subject: [PATCH] Fix duplicated receivers in API response (#56829) --- pkg/services/ngalert/notifier/alertmanager.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/services/ngalert/notifier/alertmanager.go b/pkg/services/ngalert/notifier/alertmanager.go index 9633aa48073..a8fee9142b6 100644 --- a/pkg/services/ngalert/notifier/alertmanager.go +++ b/pkg/services/ngalert/notifier/alertmanager.go @@ -428,14 +428,16 @@ func (am *Alertmanager) applyConfig(cfg *apimodels.PostableUserConfig, rawConfig am.dispatcher = dispatch.NewDispatcher(am.alerts, am.route, routingStage, am.marker, am.timeoutFunc, &nilLimits{}, am.logger, am.dispatcherMetrics) // Check which receivers are active and create the receiver stage. + var receivers []*notify.Receiver activeReceivers := am.getActiveReceiversMap(am.route) for name := range integrationsMap { stage := am.createReceiverStage(name, integrationsMap[name], am.waitFunc, am.notificationLog) routingStage[name] = notify.MultiStage{meshStage, silencingStage, timeMuteStage, inhibitionStage, stage} _, isActive := activeReceivers[name] - am.receivers = append(am.receivers, notify.NewReceiver(name, isActive, integrationsMap[name])) + receivers = append(receivers, notify.NewReceiver(name, isActive, integrationsMap[name])) } + am.receivers = receivers am.wg.Add(1) go func() {