From 9685be64cd410ae97b73af2eb96293c9100434e5 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Thu, 3 Jan 2019 18:54:47 +0000 Subject: [PATCH] qingstor: fix go routine leak on multipart upload errors - fixes #2851 --- backend/qingstor/upload.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/backend/qingstor/upload.go b/backend/qingstor/upload.go index a27b61643..43f635c90 100644 --- a/backend/qingstor/upload.go +++ b/backend/qingstor/upload.go @@ -392,6 +392,14 @@ func (mu *multiUploader) multiPartUpload(firstBuf io.ReadSeeker) error { var nextChunkLen int reader, nextChunkLen, err = mu.nextReader() if err != nil && err != io.EOF { + // empty ch + go func() { + for range ch { + } + }() + // Wait for all goroutines finish + close(ch) + mu.wg.Wait() return err } if nextChunkLen == 0 && partNumber > 0 {