diff --git a/retrieval/scrape.go b/retrieval/scrape.go index 925d8151f0..fc6b5a1166 100644 --- a/retrieval/scrape.go +++ b/retrieval/scrape.go @@ -130,6 +130,13 @@ func newScrapePool(cfg *config.ScrapeConfig, app storage.SampleAppender) *scrape } } +func (sp *scrapePool) init(ctx context.Context) { + sp.mtx.Lock() + defer sp.mtx.Unlock() + + sp.ctx = ctx +} + // stop terminates all scrape loops and returns after they all terminated. func (sp *scrapePool) stop() { var wg sync.WaitGroup diff --git a/retrieval/targetmanager.go b/retrieval/targetmanager.go index 5ce1e98f86..845d5950f8 100644 --- a/retrieval/targetmanager.go +++ b/retrieval/targetmanager.go @@ -224,7 +224,7 @@ func (ts *targetSet) reload(cfg *config.ScrapeConfig) { func (ts *targetSet) runScraping(ctx context.Context) { ctx, ts.cancelScraping = context.WithCancel(ctx) - ts.scrapePool.ctx = ctx + ts.scrapePool.init(ctx) Loop: for {