Merge pull request #439 from prometheus/beorn7/remove-deadlock
Remove a deadlock during shutdown.
This commit is contained in:
commit
7aae5dd873
|
@ -424,7 +424,7 @@ func (s *memorySeriesStorage) preloadChunksForRange(
|
|||
func (s *memorySeriesStorage) handleEvictList() {
|
||||
ticker := time.NewTicker(maxEvictInterval)
|
||||
count := 0
|
||||
loop:
|
||||
|
||||
for {
|
||||
// To batch up evictions a bit, this tries evictions at least
|
||||
// once per evict interval, but earlier if the number of evict
|
||||
|
@ -450,12 +450,20 @@ loop:
|
|||
s.maybeEvict()
|
||||
}
|
||||
case <-s.evictStopping:
|
||||
break loop
|
||||
}
|
||||
}
|
||||
// Drain evictRequests to not let requesters hang.
|
||||
for {
|
||||
select {
|
||||
case <-s.evictRequests:
|
||||
// Do nothing.
|
||||
default:
|
||||
ticker.Stop()
|
||||
glog.Info("Chunk eviction stopped.")
|
||||
close(s.evictStopped)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// maybeEvict is a local helper method. Must only be called by handleEvictList.
|
||||
|
|
Loading…
Reference in New Issue