diff options
| author | chrislu <chris.lu@gmail.com> | 2024-11-21 00:37:38 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-11-21 00:37:38 -0800 |
| commit | c9f344869246ca4d5c72f97f63226b41e0e9c190 (patch) | |
| tree | 42eca3055ffed84d8331aa5b5fa109df97dadf73 /weed/storage/volume_checking.go | |
| parent | be09d08eb6bfb41266107e9ac3e29b2e60677680 (diff) | |
| download | seaweedfs-c9f344869246ca4d5c72f97f63226b41e0e9c190.tar.xz seaweedfs-c9f344869246ca4d5c72f97f63226b41e0e9c190.zip | |
ReadAt may return io.EOF t end of file
related to https://github.com/seaweedfs/seaweedfs/issues/6219
Diffstat (limited to 'weed/storage/volume_checking.go')
| -rw-r--r-- | weed/storage/volume_checking.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/weed/storage/volume_checking.go b/weed/storage/volume_checking.go index 9bd432f85..6d2335f70 100644 --- a/weed/storage/volume_checking.go +++ b/weed/storage/volume_checking.go @@ -80,7 +80,11 @@ func readIndexEntryAtOffset(indexFile *os.File, offset int64) (bytes []byte, err return } bytes = make([]byte, NeedleMapEntrySize) - _, err = indexFile.ReadAt(bytes, offset) + var readCount int + readCount, err = indexFile.ReadAt(bytes, offset) + if err == io.EOF && readCount == NeedleMapEntrySize { + err = nil + } return } @@ -97,7 +101,11 @@ func verifyNeedleIntegrity(datFile backend.BackendStorageFile, v needle.Version, } if v == needle.Version3 { bytes := make([]byte, TimestampSize) - _, err = datFile.ReadAt(bytes, offset+NeedleHeaderSize+int64(size)+needle.NeedleChecksumSize) + var readCount int + readCount, err = datFile.ReadAt(bytes, offset+NeedleHeaderSize+int64(size)+needle.NeedleChecksumSize) + if err == io.EOF && readCount == TimestampSize { + err = nil + } if err == io.EOF { return 0, err } |
