Fix sample deduplication in chainSampleIterator (backport #8591)
Fixes https://github.com/prometheus/prometheus/issues/8558 Signed-off-by: Julius Volz <julius.volz@gmail.com>
This commit is contained in:
parent
97fb4a34ae
commit
df7541b899
|
@ -467,6 +467,7 @@ func (c *chainSampleIterator) Seek(t int64) bool {
|
|||
}
|
||||
if len(c.h) > 0 {
|
||||
c.curr = heap.Pop(&c.h).(chunkenc.Iterator)
|
||||
c.lastt, _ = c.curr.At()
|
||||
return true
|
||||
}
|
||||
c.curr = nil
|
||||
|
|
|
@ -647,6 +647,14 @@ func TestChainSampleIteratorSeek(t *testing.T) {
|
|||
seek: 2,
|
||||
expected: []tsdbutil.Sample{sample{2, 2}, sample{3, 3}, sample{4, 4}, sample{5, 5}},
|
||||
},
|
||||
{
|
||||
input: []chunkenc.Iterator{
|
||||
NewListSeriesIterator(samples{sample{0, 0}, sample{2, 2}, sample{3, 3}}),
|
||||
NewListSeriesIterator(samples{sample{0, 0}, sample{1, 1}, sample{2, 2}}),
|
||||
},
|
||||
seek: 0,
|
||||
expected: []tsdbutil.Sample{sample{0, 0}, sample{1, 1}, sample{2, 2}, sample{3, 3}},
|
||||
},
|
||||
} {
|
||||
merged := newChainSampleIterator(tc.input)
|
||||
actual := []tsdbutil.Sample{}
|
||||
|
|
Loading…
Reference in New Issue