From 28b862f45f5d825f0f37ed04c105fb78c4a57248 Mon Sep 17 00:00:00 2001 From: chrislu Date: Sat, 20 Aug 2022 22:03:27 -0700 Subject: [PATCH] use util.Retry to retry --- .../filer_server_handlers_write_upload.go | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/weed/server/filer_server_handlers_write_upload.go b/weed/server/filer_server_handlers_write_upload.go index 846454cc2..b53ad169a 100644 --- a/weed/server/filer_server_handlers_write_upload.go +++ b/weed/server/filer_server_handlers_write_upload.go @@ -171,28 +171,27 @@ func (fs *FilerServer) dataToChunk(fileName, contentType string, data []byte, ch var auth security.EncodedJwt var uploadErr error var uploadResult *operation.UploadResult - for i := 0; i < 3; i++ { + + err := util.Retry("filerDataToChunk", func() error { // assign one file id for one chunk fileId, urlLocation, auth, uploadErr = fs.assignNewFileInfo(so) if uploadErr != nil { glog.V(4).Infof("retry later due to assign error: %v", uploadErr) stats.FilerRequestCounter.WithLabelValues(stats.ChunkAssignRetry).Inc() - time.Sleep(time.Duration(i+1) * 251 * time.Millisecond) - continue + return uploadErr } // upload the chunk to the volume server uploadResult, uploadErr, _ = fs.doUpload(urlLocation, dataReader, fileName, contentType, nil, auth) if uploadErr != nil { glog.V(4).Infof("retry later due to upload error: %v", uploadErr) stats.FilerRequestCounter.WithLabelValues(stats.ChunkDoUploadRetry).Inc() - time.Sleep(time.Duration(i+1) * 251 * time.Millisecond) - continue + return uploadErr } - break - } - if uploadErr != nil { - glog.Errorf("upload error: %v", uploadErr) - return nil, uploadErr + return nil + }) + if err != nil { + glog.Errorf("upload error: %v", err) + return nil, err } // if last chunk exhausted the reader exactly at the border