diff options
| author | 霍晓栋 <huoxd@jiedaibao.com> | 2016-07-25 14:54:40 +0800 |
|---|---|---|
| committer | 霍晓栋 <huoxd@jiedaibao.com> | 2016-07-25 14:54:40 +0800 |
| commit | 09bd3d015d02fb9a8c237d64586a0fbc8a6bde8f (patch) | |
| tree | 372a74f8977845aa567d100be00143ae590feb57 /weed/storage/volume_checking.go | |
| parent | 78678f4bcb7aa6b18cd364f86135b54e2d633f24 (diff) | |
| download | seaweedfs-09bd3d015d02fb9a8c237d64586a0fbc8a6bde8f.tar.xz seaweedfs-09bd3d015d02fb9a8c237d64586a0fbc8a6bde8f.zip | |
deleted index entry could not point to deleted needle
Diffstat (limited to 'weed/storage/volume_checking.go')
| -rw-r--r-- | weed/storage/volume_checking.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/weed/storage/volume_checking.go b/weed/storage/volume_checking.go index 00ce0aab1..5fcaf3b66 100644 --- a/weed/storage/volume_checking.go +++ b/weed/storage/volume_checking.go @@ -21,6 +21,10 @@ func CheckVolumeDataIntegrity(v *Volume, indexFile *os.File) error { return fmt.Errorf("readLastIndexEntry %s failed: %v", indexFile.Name(), e) } key, offset, size := idxFileEntry(lastIdxEntry) + //deleted index entry could not point to deleted needle + if offset == 0 || size == 0 { + return nil + } if e = verifyNeedleIntegrity(v.dataFile, v.Version(), int64(offset)*NeedlePaddingSize, key, size); e != nil { return fmt.Errorf("verifyNeedleIntegrity %s failed: %v", indexFile.Name(), e) } |
