aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-01-15 15:01:36 -0800
committerchrislu <chris.lu@gmail.com>2022-01-15 15:01:36 -0800
commitab61386d29e0e478e2e1fcca92d5ee4a66a249f7 (patch)
tree92157304ed9ac3e8bc0415a15b32137d3461dac2
parent4d06e18554a42df355052b77993edf9e74ed64c8 (diff)
downloadseaweedfs-ab61386d29e0e478e2e1fcca92d5ee4a66a249f7.tar.xz
seaweedfs-ab61386d29e0e478e2e1fcca92d5ee4a66a249f7.zip
fix checking
-rw-r--r--weed/filesys/page_writer.go15
1 files changed, 9 insertions, 6 deletions
diff --git a/weed/filesys/page_writer.go b/weed/filesys/page_writer.go
index 1547bce26..55ed25f96 100644
--- a/weed/filesys/page_writer.go
+++ b/weed/filesys/page_writer.go
@@ -1,6 +1,7 @@
package filesys
import (
+ "fmt"
"github.com/chrislusf/seaweedfs/weed/filesys/page_writer"
"github.com/chrislusf/seaweedfs/weed/glog"
)
@@ -69,22 +70,24 @@ func (pw *PageWriter) FlushData() error {
func (pw *PageWriter) ReadDirtyDataAt(data []byte, offset int64) (maxStop int64) {
glog.V(4).Infof("ReadDirtyDataAt %v [%d, %d)", pw.f.fullpath(), offset, offset+int64(len(data)))
+ dataSlice := data
+
chunkIndex := offset / pw.chunkSize
- for i := chunkIndex; len(data) > 0; i++ {
- readSize := min(int64(len(data)), (i+1)*pw.chunkSize-offset)
+ for i := chunkIndex; len(dataSlice) > 0; i++ {
+ readSize := min(int64(len(dataSlice)), (i+1)*pw.chunkSize-offset)
if pw.streamWriter != nil {
- m1 := pw.streamWriter.ReadDirtyDataAt(data[:readSize], offset)
+ m1 := pw.streamWriter.ReadDirtyDataAt(dataSlice[:readSize], offset)
maxStop = max(maxStop, m1)
}
- m2 := pw.randomWriter.ReadDirtyDataAt(data[:readSize], offset)
+ m2 := pw.randomWriter.ReadDirtyDataAt(dataSlice[:readSize], offset)
maxStop = max(maxStop, m2)
offset += readSize
- data = data[readSize:]
+ data = dataSlice[readSize:]
}
- page_writer.CheckByteZero("page writer read", data, 0, maxStop-offset)
+ page_writer.CheckByteZero(fmt.Sprintf("page writer read [%d,%d)", offset, offset+int64(len(data))), data, 0, maxStop-offset)
return
}