aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-08-18 08:18:54 -0700
committerChris Lu <chris.lu@gmail.com>2020-08-18 08:18:54 -0700
commit85001cbec7898b9264b0c3b025ae2aa71d617fd8 (patch)
treea3d27474bd707952132a0c93b30918547184550a
parent0ca45a5cbc6813996a6e427b3d22aaf3aced856e (diff)
downloadseaweedfs-85001cbec7898b9264b0c3b025ae2aa71d617fd8.tar.xz
seaweedfs-85001cbec7898b9264b0c3b025ae2aa71d617fd8.zip
properly report io.EOF
-rw-r--r--weed/filer2/reader_at.go2
-rw-r--r--weed/filer2/reader_at_test.go8
2 files changed, 5 insertions, 5 deletions
diff --git a/weed/filer2/reader_at.go b/weed/filer2/reader_at.go
index 2894f4a4b..19821771f 100644
--- a/weed/filer2/reader_at.go
+++ b/weed/filer2/reader_at.go
@@ -114,7 +114,7 @@ func (c *ChunkReadAt) doReadAt(p []byte, offset int64) (n int, err error) {
n += delta
}
- if offset+int64(n) >= c.fileSize {
+ if err == nil && offset+int64(len(p)) > c.fileSize {
err = io.EOF
}
// fmt.Printf("~~~ filled %d, err: %v\n\n", n, err)
diff --git a/weed/filer2/reader_at_test.go b/weed/filer2/reader_at_test.go
index f93d7ea11..7377c5dbc 100644
--- a/weed/filer2/reader_at_test.go
+++ b/weed/filer2/reader_at_test.go
@@ -66,9 +66,9 @@ func TestReaderAt(t *testing.T) {
chunkCache: &mockChunkCache{},
}
- testReadAt(t, readerAt, 0, 10, 10, io.EOF)
+ testReadAt(t, readerAt, 0, 10, 10, nil)
testReadAt(t, readerAt, 0, 12, 10, io.EOF)
- testReadAt(t, readerAt, 2, 8, 8, io.EOF)
+ testReadAt(t, readerAt, 2, 8, 8, nil)
testReadAt(t, readerAt, 3, 6, 6, nil)
}
@@ -116,7 +116,7 @@ func TestReaderAt0(t *testing.T) {
chunkCache: &mockChunkCache{},
}
- testReadAt(t, readerAt, 0, 10, 10, io.EOF)
+ testReadAt(t, readerAt, 0, 10, 10, nil)
testReadAt(t, readerAt, 3, 16, 7, io.EOF)
testReadAt(t, readerAt, 3, 5, 5, nil)
@@ -144,7 +144,7 @@ func TestReaderAt1(t *testing.T) {
chunkCache: &mockChunkCache{},
}
- testReadAt(t, readerAt, 0, 20, 20, io.EOF)
+ testReadAt(t, readerAt, 0, 20, 20, nil)
testReadAt(t, readerAt, 1, 7, 7, nil)
testReadAt(t, readerAt, 0, 1, 1, nil)
testReadAt(t, readerAt, 18, 4, 2, io.EOF)