mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-11-27 12:49:41 +08:00
fix volume.move io.EOF (#5960)
This commit is contained in:
parent
282867a71e
commit
361e7ebc74
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user