aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer2/reader_at.go7
-rw-r--r--weed/filesys/file.go2
-rw-r--r--weed/util/chunk_cache/chunk_cache.go2
3 files changed, 8 insertions, 3 deletions
diff --git a/weed/filer2/reader_at.go b/weed/filer2/reader_at.go
index 2771f878c..697e3f630 100644
--- a/weed/filer2/reader_at.go
+++ b/weed/filer2/reader_at.go
@@ -90,6 +90,9 @@ func (c *ChunkReadAt) doReadAt(p []byte, offset int64) (n int, err error) {
found = true
if c.bufferOffset != chunk.LogicOffset {
c.buffer, err = c.fetchChunkData(chunk)
+ if err != nil {
+ glog.Errorf("fetching chunk %+v: %v\n", chunk, err)
+ }
c.bufferOffset = chunk.LogicOffset
}
break
@@ -99,7 +102,9 @@ func (c *ChunkReadAt) doReadAt(p []byte, offset int64) (n int, err error) {
return 0, io.EOF
}
- n = copy(p, c.buffer[offset-c.bufferOffset:])
+ if err == nil {
+ n = copy(p, c.buffer[offset-c.bufferOffset:])
+ }
// fmt.Printf("> doReadAt [%d,%d), buffer:[%d,%d)\n", offset, offset+int64(n), c.bufferOffset, c.bufferOffset+int64(len(c.buffer)))
diff --git a/weed/filesys/file.go b/weed/filesys/file.go
index 2932d4910..0f788a888 100644
--- a/weed/filesys/file.go
+++ b/weed/filesys/file.go
@@ -212,7 +212,7 @@ func (file *File) Fsync(ctx context.Context, req *fuse.FsyncRequest) error {
func (file *File) Forget() {
t := util.NewFullPath(file.dir.FullPath(), file.Name)
- glog.V(3).Infof("Forget file %s", t)
+ glog.V(4).Infof("Forget file %s", t)
}
func (file *File) maybeLoadEntry(ctx context.Context) error {
diff --git a/weed/util/chunk_cache/chunk_cache.go b/weed/util/chunk_cache/chunk_cache.go
index e1d4b639f..9421ac15c 100644
--- a/weed/util/chunk_cache/chunk_cache.go
+++ b/weed/util/chunk_cache/chunk_cache.go
@@ -60,7 +60,7 @@ func (c *ChunkCache) doGetChunk(fileId string, chunkSize uint64) (data []byte) {
for _, diskCache := range c.diskCaches {
data := diskCache.getChunk(fid.Key)
- if len(data) != 0 {
+ if len(data) != 0 && len(data) >= int(chunkSize) {
return data
}
}