From e12b9ab7460aa635e32190e9f61f37fdc7b794f6 Mon Sep 17 00:00:00 2001 From: wusong <75450248+wusongANKANG@users.noreply.github.com> Date: Tue, 15 Oct 2024 03:17:41 +0800 Subject: [PATCH] fix: volume data integrity check (#6118) Co-authored-by: wang wusong --- weed/storage/volume_checking.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/weed/storage/volume_checking.go b/weed/storage/volume_checking.go index 9bd432f85..202fc58e0 100644 --- a/weed/storage/volume_checking.go +++ b/weed/storage/volume_checking.go @@ -2,10 +2,11 @@ package storage import ( "fmt" - "github.com/seaweedfs/seaweedfs/weed/storage/super_block" "io" "os" + "github.com/seaweedfs/seaweedfs/weed/storage/super_block" + "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/storage/backend" "github.com/seaweedfs/seaweedfs/weed/storage/idx" @@ -26,11 +27,11 @@ func CheckVolumeDataIntegrity(v *Volume, indexFile *os.File) (lastAppendAtNs uin for i := 1; i <= 10 && indexSize >= int64(i)*NeedleMapEntrySize; i++ { // check and fix last 10 entries lastAppendAtNs, err = doCheckAndFixVolumeData(v, indexFile, indexSize-int64(i)*NeedleMapEntrySize) - if err == io.EOF { - healthyIndexSize = indexSize - int64(i)*NeedleMapEntrySize - continue - } - if err != ErrorSizeMismatch { + if err != nil { + if err == io.EOF { + healthyIndexSize = indexSize - int64(i)*NeedleMapEntrySize + continue + } break } }