From 8bf7bc68f1d678ea82c392f80486a62e7973720b Mon Sep 17 00:00:00 2001 From: Bartlomiej Plotka Date: Thu, 25 Feb 2021 10:08:12 +0100 Subject: [PATCH] Fixed TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks for go1.16 (#8538) Fixes https://github.com/prometheus/prometheus/issues/8403 Signed-off-by: Bartlomiej Plotka --- tsdb/chunks/head_chunks.go | 4 +++- tsdb/chunks/head_chunks_test.go | 11 ++--------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/tsdb/chunks/head_chunks.go b/tsdb/chunks/head_chunks.go index 051b9b1a8..d5386f7ea 100644 --- a/tsdb/chunks/head_chunks.go +++ b/tsdb/chunks/head_chunks.go @@ -605,12 +605,14 @@ func (cdm *ChunkDiskMapper) IterateAllChunks(f func(seriesRef, chunkRef uint64, } } if allZeros { + // End of segment chunk file content. break } return &CorruptionErr{ Dir: cdm.dir.Name(), 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() diff --git a/tsdb/chunks/head_chunks_test.go b/tsdb/chunks/head_chunks_test.go index 43aa0484b..351943900 100644 --- a/tsdb/chunks/head_chunks_test.go +++ b/tsdb/chunks/head_chunks_test.go @@ -118,11 +118,6 @@ func TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks(t *testing.T) { fileEnd := HeadChunkFileHeaderSize + len(expectedBytes) 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. for _, exp := range expectedData { actChunk, err := hrw.Chunk(exp.chunkRef) @@ -137,7 +132,7 @@ func TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks(t *testing.T) { require.NoError(t, err) 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() expData := expectedData[idx] @@ -153,10 +148,8 @@ func TestChunkDiskMapper_WriteChunk_Chunk_IterateChunks(t *testing.T) { idx++ return nil - }) - require.NoError(t, err) + })) require.Equal(t, len(expectedData), idx) - } // TestChunkDiskMapper_Truncate tests