fix volume.move io.EOF (#5960)

This commit is contained in:
wyang 2024-09-02 21:17:41 +08:00 committed by GitHub
parent 282867a71e
commit 361e7ebc74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,10 +3,11 @@ package storage
import (
"context"
"fmt"
"github.com/seaweedfs/seaweedfs/weed/pb"
"io"
"os"
"github.com/seaweedfs/seaweedfs/weed/pb"
"google.golang.org/grpc"
"github.com/seaweedfs/seaweedfs/weed/operation"
@ -200,7 +201,7 @@ func (v *Volume) BinarySearchByAppendAtNs(sinceNs uint64) (offset Offset, isLast
err = leftErr
return
}
rightIndex, rightOffset, rightNs, rightErr := v.readRightNs(m)
rightIndex, rightOffset, rightNs, rightErr := v.readRightNs(m, entryCount)
if rightErr != nil {
err = rightErr
return
@ -249,10 +250,13 @@ func (v *Volume) BinarySearchByAppendAtNs(sinceNs uint64) (offset Offset, isLast
}
func (v *Volume) readRightNs(m int64) (index int64, offset Offset, ts uint64, err error) {
func (v *Volume) readRightNs(m, max int64) (index int64, offset Offset, ts uint64, err error) {
index = m
for offset.IsZero() {
index++
if index >= max {
return
}
offset, err = v.readOffsetFromIndex(index)
if err != nil {
err = fmt.Errorf("read left entry at %d: %v", index, err)
@ -269,6 +273,9 @@ func (v *Volume) readLeftNs(m int64) (index int64, offset Offset, ts uint64, err
index = m
for offset.IsZero() {
index--
if index < 0 {
return
}
offset, err = v.readOffsetFromIndex(index)
if err != nil {
err = fmt.Errorf("read right entry at %d: %v", index, err)