aboutsummaryrefslogtreecommitdiff
path: root/weed/replication/repl_util
diff options
context:
space:
mode:
Diffstat (limited to 'weed/replication/repl_util')
-rw-r--r--weed/replication/repl_util/replication_utli.go10
1 files changed, 6 insertions, 4 deletions
diff --git a/weed/replication/repl_util/replication_utli.go b/weed/replication/repl_util/replication_utli.go
index 42777f4ad..c5b8ab4e1 100644
--- a/weed/replication/repl_util/replication_utli.go
+++ b/weed/replication/repl_util/replication_utli.go
@@ -17,9 +17,10 @@ func CopyFromChunkViews(chunkViews []*filer.ChunkView, filerSource *source.Filer
}
var writeErr error
+ var shouldRetry bool
for _, fileUrl := range fileUrls {
- _, err = util.ReadUrlAsStream(fileUrl+"?readDeleted=true", nil, false, chunk.IsFullChunk(), chunk.Offset, int(chunk.Size), func(data []byte) {
+ shouldRetry, err = util.ReadUrlAsStream(fileUrl+"?readDeleted=true", nil, false, chunk.IsFullChunk(), chunk.Offset, int(chunk.Size), func(data []byte) {
writeErr = writeFunc(data)
})
if err != nil {
@@ -30,11 +31,12 @@ func CopyFromChunkViews(chunkViews []*filer.ChunkView, filerSource *source.Filer
break
}
}
-
- if err != nil {
+ if shouldRetry && err != nil {
return err
}
-
+ if writeErr != nil {
+ return writeErr
+ }
}
return nil
}