can vacuum volume when size mismatch (#5200)

Co-authored-by: Yang Wang <yangwang@weride.ai>
This commit is contained in:
skycope
2024-01-16 08:16:46 +08:00
committed by GitHub
parent c82236b41b
commit 316ae45795
3 changed files with 14 additions and 4 deletions

View File

@@ -93,7 +93,17 @@ func (n *Needle) ReadData(r backend.BackendStorageFile, offset int64, size Size,
if err != nil {
return err
}
return n.ReadBytes(bytes, offset, size, version)
err = n.ReadBytes(bytes, offset, size, version)
if err == ErrorSizeMismatch && OffsetSize == 4 {
offset = offset + int64(MaxPossibleVolumeSize)
bytes, err = ReadNeedleBlob(r, offset, size, version)
if err != nil {
return err
}
err = n.ReadBytes(bytes, offset, size, version)
}
return err
}
func (n *Needle) ParseNeedleHeader(bytes []byte) {