Browse Source

Fixed TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks for go1.16 (#8538)

Fixes https://github.com/prometheus/prometheus/issues/8403

Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com>
pull/8542/head
Bartlomiej Plotka 4 years ago committed by GitHub
parent
commit
8bf7bc68f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      tsdb/chunks/head_chunks.go
  2. 11
      tsdb/chunks/head_chunks_test.go

4
tsdb/chunks/head_chunks.go

@ -605,12 +605,14 @@ func (cdm *ChunkDiskMapper) IterateAllChunks(f func(seriesRef, chunkRef uint64,
} }
} }
if allZeros { if allZeros {
// End of segment chunk file content.
break break
} }
return &CorruptionErr{ return &CorruptionErr{
Dir: cdm.dir.Name(), Dir: cdm.dir.Name(),
FileIndex: segID, FileIndex: segID,
Err: errors.Errorf("head chunk file doesn't include enough bytes to read the chunk header - required:%v, available:%v, file:%d", idx+MaxHeadChunkMetaSize, fileEnd, segID), Err: errors.Errorf("head chunk file has some unread data, but doesn't include enough bytes to read the chunk header"+
" - required:%v, available:%v, file:%d", idx+MaxHeadChunkMetaSize, fileEnd, segID),
} }
} }
chkCRC32.Reset() chkCRC32.Reset()

11
tsdb/chunks/head_chunks_test.go

@ -118,11 +118,6 @@ func TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks(t *testing.T) {
fileEnd := HeadChunkFileHeaderSize + len(expectedBytes) fileEnd := HeadChunkFileHeaderSize + len(expectedBytes)
require.Equal(t, expectedBytes, actualBytes[HeadChunkFileHeaderSize:fileEnd]) require.Equal(t, expectedBytes, actualBytes[HeadChunkFileHeaderSize:fileEnd])
// Test for the next chunk header to be all 0s. That marks the end of the file.
for _, b := range actualBytes[fileEnd : fileEnd+MaxHeadChunkMetaSize] {
require.Equal(t, byte(0), b)
}
// Testing reading of chunks. // Testing reading of chunks.
for _, exp := range expectedData { for _, exp := range expectedData {
actChunk, err := hrw.Chunk(exp.chunkRef) actChunk, err := hrw.Chunk(exp.chunkRef)
@ -137,7 +132,7 @@ func TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
idx := 0 idx := 0
err = hrw.IterateAllChunks(func(seriesRef, chunkRef uint64, mint, maxt int64, numSamples uint16) error { require.NoError(t, hrw.IterateAllChunks(func(seriesRef, chunkRef uint64, mint, maxt int64, numSamples uint16) error {
t.Helper() t.Helper()
expData := expectedData[idx] expData := expectedData[idx]
@ -153,10 +148,8 @@ func TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks(t *testing.T) {
idx++ idx++
return nil return nil
}) }))
require.NoError(t, err)
require.Equal(t, len(expectedData), idx) require.Equal(t, len(expectedData), idx)
} }
// TestChunkDiskMapper_Truncate tests // TestChunkDiskMapper_Truncate tests

Loading…
Cancel
Save