diff options
| author | chrislu <chris.lu@gmail.com> | 2022-08-20 22:03:27 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-08-20 22:03:27 -0700 |
| commit | 28b862f45f5d825f0f37ed04c105fb78c4a57248 (patch) | |
| tree | 8d88e54882b0f22d032f41a2bedbf3e05ca4e19a | |
| parent | 3bf8e772f8a80b6b36c095dd957176928aaf1ab4 (diff) | |
| download | seaweedfs-28b862f45f5d825f0f37ed04c105fb78c4a57248.tar.xz seaweedfs-28b862f45f5d825f0f37ed04c105fb78c4a57248.zip | |
use util.Retry to retry
| -rw-r--r-- | weed/server/filer_server_handlers_write_upload.go | 19 |
1 files 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 |
