aboutsummaryrefslogtreecommitdiff
path: root/weed/filesys/page_writer/upload_pipeline.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-01-17 13:40:41 -0800
committerchrislu <chris.lu@gmail.com>2022-01-17 13:40:41 -0800
commit1734017ba13cb03f04f3028712e521f4a6b7f00c (patch)
treefe951df9bccdce47bedd0504914380491acf4ef0 /weed/filesys/page_writer/upload_pipeline.go
parentda7f13e73e110ad7b33124cae119ccd51ef3f194 (diff)
downloadseaweedfs-1734017ba13cb03f04f3028712e521f4a6b7f00c.tar.xz
seaweedfs-1734017ba13cb03f04f3028712e521f4a6b7f00c.zip
add test
Diffstat (limited to 'weed/filesys/page_writer/upload_pipeline.go')
-rw-r--r--weed/filesys/page_writer/upload_pipeline.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/filesys/page_writer/upload_pipeline.go b/weed/filesys/page_writer/upload_pipeline.go
index 0c9e13649..b87061adb 100644
--- a/weed/filesys/page_writer/upload_pipeline.go
+++ b/weed/filesys/page_writer/upload_pipeline.go
@@ -142,9 +142,10 @@ func (cw *UploadPipeline) moveToSealed(memChunk *MemChunk, logicChunkIndex Logic
cw.sealedChunksLock.Unlock()
cw.writers.Execute(func() {
+ // first add to the file chunks
cw.saveOneChunk(sealedChunk.chunk, logicChunkIndex)
- // remove from sealed chunks
+ // then remove from sealed chunks
sealedChunk.FreeReference()
cw.sealedChunksLock.Lock()
defer cw.sealedChunksLock.Unlock()
@@ -162,6 +163,9 @@ func (cw *UploadPipeline) moveToSealed(memChunk *MemChunk, logicChunkIndex Logic
}
func (cw *UploadPipeline) saveOneChunk(memChunk *MemChunk, logicChunkIndex LogicChunkIndex) {
+ if cw.saveToStorageFn == nil {
+ return
+ }
for t := memChunk.usage.head.next; t != memChunk.usage.tail; t = t.next {
reader := util.NewBytesReader(memChunk.buf[t.StartOffset:t.stopOffset])
cw.saveToStorageFn(reader, int64(logicChunkIndex)*cw.ChunkSize+t.StartOffset, t.Size(), func() {