aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-04-05 10:53:36 -0700
committerchrislu <chris.lu@gmail.com>2022-04-05 10:53:36 -0700
commit8b3d76b24dc52a0d125c372b439d711a065b2d40 (patch)
treea0cf24ccc1e3accc3da0d7879d3c08908faec270
parentbb4beebce368f9c19257cf67779b5f65e99c6e21 (diff)
downloadseaweedfs-8b3d76b24dc52a0d125c372b439d711a065b2d40.tar.xz
seaweedfs-8b3d76b24dc52a0d125c372b439d711a065b2d40.zip
prevent concurrent access during shutdown
-rw-r--r--weed/mount/page_writer/upload_pipeline.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/weed/mount/page_writer/upload_pipeline.go b/weed/mount/page_writer/upload_pipeline.go
index e084ca58f..0c7446cad 100644
--- a/weed/mount/page_writer/upload_pipeline.go
+++ b/weed/mount/page_writer/upload_pipeline.go
@@ -187,6 +187,9 @@ func (up *UploadPipeline) moveToSealed(memChunk PageChunk, logicChunkIndex Logic
func (up *UploadPipeline) Shutdown() {
up.swapFile.FreeResource()
+
+ up.sealedChunksLock.Lock()
+ defer up.sealedChunksLock.Unlock()
for logicChunkIndex, sealedChunk := range up.sealedChunks {
sealedChunk.FreeReference(fmt.Sprintf("%s uploadpipeline shutdown chunk %d", up.filepath, logicChunkIndex))
}