From 08a012ccd71faa61b4a719cb101809c7326170f9 Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Tue, 7 Nov 2017 15:56:00 +0000 Subject: [PATCH] Fix for #3312 sigpanic in TargetManager (#3420) --- retrieval/targetmanager.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/retrieval/targetmanager.go b/retrieval/targetmanager.go index 2bca64abe..53d87e208 100644 --- a/retrieval/targetmanager.go +++ b/retrieval/targetmanager.go @@ -40,6 +40,7 @@ type TargetManager struct { // Set of unqiue targets by scrape configuration. targetSets map[string]*targetSet logger log.Logger + starting chan struct{} } type targetSet struct { @@ -61,6 +62,7 @@ func NewTargetManager(app Appendable, logger log.Logger) *TargetManager { append: app, targetSets: map[string]*targetSet{}, logger: logger, + starting: make(chan struct{}), } } @@ -74,12 +76,14 @@ func (tm *TargetManager) Run() { tm.reload() tm.mtx.Unlock() + close(tm.starting) tm.wg.Wait() } // Stop all background processing. func (tm *TargetManager) Stop() { + <-tm.starting level.Info(tm.logger).Log("msg", "Stopping target manager...") tm.mtx.Lock()