From 658e684644a9868037f002486945d9eb212d5794 Mon Sep 17 00:00:00 2001 From: liyandi Date: Fri, 12 Jul 2024 18:12:20 +0800 Subject: [PATCH] break if chan is closed Signed-off-by: liyandi --- discovery/legacymanager/manager.go | 5 ++++- notifier/notifier.go | 5 ++++- scrape/manager.go | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/discovery/legacymanager/manager.go b/discovery/legacymanager/manager.go index 6fc61485d1..68f712bb20 100644 --- a/discovery/legacymanager/manager.go +++ b/discovery/legacymanager/manager.go @@ -203,7 +203,10 @@ func (m *Manager) updater(ctx context.Context, p *provider, updates chan []*targ func (m *Manager) sender() { ticker := time.NewTicker(m.updatert) - defer ticker.Stop() + defer func() { + ticker.Stop() + close(m.syncCh) + }() for { select { diff --git a/notifier/notifier.go b/notifier/notifier.go index 68b0d4961e..296e1ea51a 100644 --- a/notifier/notifier.go +++ b/notifier/notifier.go @@ -358,7 +358,10 @@ func (n *Manager) targetUpdateLoop(tsets <-chan map[string][]*targetgroup.Group) select { case <-n.stopRequested: return - case ts := <-tsets: + case ts, ok := <-tsets: + if !ok { + break + } n.reload(ts) } } diff --git a/scrape/manager.go b/scrape/manager.go index 156e949f83..1ff81079f1 100644 --- a/scrape/manager.go +++ b/scrape/manager.go @@ -119,7 +119,10 @@ func (m *Manager) Run(tsets <-chan map[string][]*targetgroup.Group) error { go m.reloader() for { select { - case ts := <-tsets: + case ts, ok := <-tsets: + if !ok { + break + } m.updateTsets(ts) select {