From 9629de8230dda6d253c85e9af959c5d81b785d45 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 26 Mar 2019 13:59:33 -0700 Subject: [PATCH] Add proper context based logging when bitrot stream calls fail (#7415) --- cmd/bitrot-streaming.go | 10 +++++++--- cmd/bitrot.go | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cmd/bitrot-streaming.go b/cmd/bitrot-streaming.go index 17125e3ef..efd838c36 100644 --- a/cmd/bitrot-streaming.go +++ b/cmd/bitrot-streaming.go @@ -84,9 +84,11 @@ func newStreamingBitrotWriter(disk StorageAPI, volume, filePath string, length i totalFileSize := bitrotSumsTotalSize + length err := disk.CreateFile(volume, filePath, totalFileSize, r) if err != nil { - logger.LogIf(context.Background(), err) - r.CloseWithError(err) + reqInfo := (&logger.ReqInfo{}).AppendTags("storageDisk", disk.String()) + ctx := logger.SetReqInfo(context.Background(), reqInfo) + logger.LogIf(ctx, err) } + r.CloseWithError(err) close(bw.canClose) }() return bw @@ -125,7 +127,9 @@ func (b *streamingBitrotReader) ReadAt(buf []byte, offset int64) (int, error) { streamOffset := (offset/b.shardSize)*int64(b.h.Size()) + offset b.rc, err = b.disk.ReadFileStream(b.volume, b.filePath, streamOffset, b.tillOffset-streamOffset) if err != nil { - logger.LogIf(context.Background(), err) + reqInfo := (&logger.ReqInfo{}).AppendTags("storageDisk", b.disk.String()) + ctx := logger.SetReqInfo(context.Background(), reqInfo) + logger.LogIf(ctx, err) return 0, err } } diff --git a/cmd/bitrot.go b/cmd/bitrot.go index 172a538e6..7bc0ff3a6 100644 --- a/cmd/bitrot.go +++ b/cmd/bitrot.go @@ -133,7 +133,7 @@ func newBitrotReader(disk StorageAPI, bucket string, filePath string, tillOffset // Close all the readers. func closeBitrotReaders(rs []io.ReaderAt) { for _, r := range rs { - if br, ok := r.(*streamingBitrotReader); ok { + if br, ok := r.(io.Closer); ok { br.Close() } } @@ -142,7 +142,7 @@ func closeBitrotReaders(rs []io.ReaderAt) { // Close all the writers. func closeBitrotWriters(ws []io.Writer) { for _, w := range ws { - if bw, ok := w.(*streamingBitrotWriter); ok { + if bw, ok := w.(io.Closer); ok { bw.Close() } }