mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
Revert "Fix issue where concatenatingChunkIterator
can obscure errors."
This reverts commit 4a1fb3b18c
.
This commit is contained in:
parent
790cede0a1
commit
7bb4f04a1c
|
@ -895,9 +895,6 @@ func (c *concatenatingChunkIterator) Next() bool {
|
||||||
c.curr = c.iterators[c.idx].At()
|
c.curr = c.iterators[c.idx].At()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if c.iterators[c.idx].Err() != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
c.idx++
|
c.idx++
|
||||||
return c.Next()
|
return c.Next()
|
||||||
}
|
}
|
||||||
|
|
|
@ -868,65 +868,6 @@ func TestConcatenatingChunkSeriesMerger(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestConcatenatingChunkIterator(t *testing.T) {
|
|
||||||
chunk1, err := chunks.ChunkFromSamples([]chunks.Sample{fSample{t: 1, f: 10}})
|
|
||||||
require.NoError(t, err)
|
|
||||||
chunk2, err := chunks.ChunkFromSamples([]chunks.Sample{fSample{t: 2, f: 20}})
|
|
||||||
require.NoError(t, err)
|
|
||||||
chunk3, err := chunks.ChunkFromSamples([]chunks.Sample{fSample{t: 3, f: 30}})
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
testError := errors.New("something went wrong")
|
|
||||||
|
|
||||||
testCases := map[string]struct {
|
|
||||||
iterators []chunks.Iterator
|
|
||||||
expectedChunks []chunks.Meta
|
|
||||||
expectedError error
|
|
||||||
}{
|
|
||||||
"many successful iterators": {
|
|
||||||
iterators: []chunks.Iterator{
|
|
||||||
NewListChunkSeriesIterator(chunk1, chunk2),
|
|
||||||
NewListChunkSeriesIterator(chunk3),
|
|
||||||
},
|
|
||||||
expectedChunks: []chunks.Meta{chunk1, chunk2, chunk3},
|
|
||||||
},
|
|
||||||
"single failing iterator": {
|
|
||||||
iterators: []chunks.Iterator{
|
|
||||||
errChunksIterator{err: testError},
|
|
||||||
},
|
|
||||||
expectedError: testError,
|
|
||||||
},
|
|
||||||
"some failing and some successful iterators": {
|
|
||||||
iterators: []chunks.Iterator{
|
|
||||||
NewListChunkSeriesIterator(chunk1, chunk2),
|
|
||||||
errChunksIterator{err: testError},
|
|
||||||
NewListChunkSeriesIterator(chunk3),
|
|
||||||
},
|
|
||||||
expectedChunks: []chunks.Meta{chunk1, chunk2}, // Should stop before advancing to last iterator.
|
|
||||||
expectedError: testError,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for name, testCase := range testCases {
|
|
||||||
t.Run(name, func(t *testing.T) {
|
|
||||||
it := concatenatingChunkIterator{iterators: testCase.iterators}
|
|
||||||
var chks []chunks.Meta
|
|
||||||
|
|
||||||
for it.Next() {
|
|
||||||
chks = append(chks, it.At())
|
|
||||||
}
|
|
||||||
|
|
||||||
require.Equal(t, testCase.expectedChunks, chks)
|
|
||||||
|
|
||||||
if testCase.expectedError == nil {
|
|
||||||
require.NoError(t, it.Err())
|
|
||||||
} else {
|
|
||||||
require.EqualError(t, it.Err(), testCase.expectedError.Error())
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type mockQuerier struct {
|
type mockQuerier struct {
|
||||||
LabelQuerier
|
LabelQuerier
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue