From f2d654527745b74f83332c217b82ba58861d3632 Mon Sep 17 00:00:00 2001 From: TAYTS Date: Sat, 10 Sep 2022 19:58:32 +0800 Subject: [PATCH] Lock metric ID map when writing to database --- pkg/postgresql/client.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/postgresql/client.go b/pkg/postgresql/client.go index 1cdfe51..b258d3c 100644 --- a/pkg/postgresql/client.go +++ b/pkg/postgresql/client.go @@ -165,6 +165,7 @@ func (c *PGWriter) PGWriterSave() { var copyCount, lblCount, rowCount int64 var err error begin := time.Now() + vMetricIDMapMutex.Lock() lblCount = int64(len(c.labelRows)) c.PGWriterMutex.Lock() if lblCount > 0 { @@ -181,6 +182,7 @@ func (c *PGWriter) PGWriterSave() { rowCount = int64(len(c.valueRows)) c.valueRows = nil c.PGWriterMutex.Unlock() + vMetricIDMapMutex.Unlock() if err != nil { level.Error(c.logger).Log("msg", "COPY failed for metric_values", "err", err) }