From 01dd618a20316bba59fd3032c2398fde70ca3856 Mon Sep 17 00:00:00 2001 From: Bjoern Rabenstein Date: Thu, 2 Oct 2014 16:06:57 +0200 Subject: [PATCH] Fix a locking bug. Change-Id: I183780785991d0b4165ce9186f53eb8201fb3ed5 --- storage/local/storage.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/storage/local/storage.go b/storage/local/storage.go index 8537d9bc2d..e8ea220e97 100644 --- a/storage/local/storage.go +++ b/storage/local/storage.go @@ -115,7 +115,6 @@ func (s *memorySeriesStorage) appendSample(sample *clientmodel.Sample) { fp := sample.Metric.Fingerprint() series := s.getOrCreateSeries(fp, sample.Metric) - // TODO: Can we release s.mtx here already? series.add(fp, &metric.SamplePair{ Value: sample.Value, Timestamp: sample.Timestamp, @@ -181,7 +180,9 @@ func (s *memorySeriesStorage) preloadChunksForRange(fp clientmodel.Fingerprint, if err != nil { return nil, err } + s.mtx.Lock() series = s.getOrCreateSeries(fp, metric) + defer s.mtx.Unlock() // Ugh. } } return series.preloadChunksForRange(from, through, s.persistence)