aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer/filechunk_manifest.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/weed/filer/filechunk_manifest.go b/weed/filer/filechunk_manifest.go
index e9ae1800c..36096d2c1 100644
--- a/weed/filer/filechunk_manifest.go
+++ b/weed/filer/filechunk_manifest.go
@@ -130,7 +130,9 @@ func retriedStreamFetchChunkData(writer io.Writer, urlStrings []string, jwt stri
var totalWritten int
for waitTime := time.Second; waitTime < util.RetryWaitTime; waitTime += waitTime / 2 {
+ retriedCnt := 0
for _, urlString := range urlStrings {
+ retriedCnt++
var localProcessed int
var writeErr error
shouldRetry, err = util_http.ReadUrlAsStreamAuthenticated(urlString+"?readDeleted=true", jwt, cipherKey, isGzipped, isFullChunk, offset, size, func(data []byte) {
@@ -161,6 +163,10 @@ func retriedStreamFetchChunkData(writer io.Writer, urlStrings []string, jwt stri
break
}
}
+ // all nodes have tried it
+ if retriedCnt == len(urlStrings) {
+ break
+ }
if err != nil && shouldRetry {
glog.V(0).Infof("retry reading in %v", waitTime)
time.Sleep(waitTime)