From e6356e64bd6fe68e7568699e2c7f345745a12b3b Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 2 Apr 2024 17:07:00 +0100 Subject: [PATCH] Scraping: drop series cache when resizing symbol table Clear caches by restarting scraping loops: each loop assumes it has exclusive ownership of its cache, so we can't come in from another goroutine and change it. Signed-off-by: Bryan Boreham --- scrape/scrape.go | 1 + 1 file changed, 1 insertion(+) diff --git a/scrape/scrape.go b/scrape/scrape.go index 57bb164b7..68411a62e 100644 --- a/scrape/scrape.go +++ b/scrape/scrape.go @@ -376,6 +376,7 @@ func (sp *scrapePool) checkSymbolTable() { } else if sp.symbolTable.Len() > 2*sp.initialSymbolTableLen { sp.symbolTable = labels.NewSymbolTable() sp.initialSymbolTableLen = 0 + sp.restartLoops(false) // To drop all caches. } sp.lastSymbolTableCheck = time.Now() }