Chromium Code Reviews| Index: server/logdog/archive/archive.go |
| diff --git a/server/logdog/archive/archive.go b/server/logdog/archive/archive.go |
| index 22c63ec014c61df4c306680d3690f2980b0b8138..ad1f0e808936c8a62cb93d1cce67d9495bf0d885 100644 |
| --- a/server/logdog/archive/archive.go |
| +++ b/server/logdog/archive/archive.go |
| @@ -10,6 +10,7 @@ import ( |
| "io" |
| "github.com/golang/protobuf/proto" |
| + "github.com/luci/luci-go/common/errors" |
| "github.com/luci/luci-go/common/logging" |
| "github.com/luci/luci-go/common/parallel" |
| "github.com/luci/luci-go/common/proto/logdog/logpb" |
| @@ -85,7 +86,7 @@ func Archive(m Manifest) error { |
| } |
| } |
| - return parallel.FanOutIn(func(taskC chan<- func() error) { |
| + err := parallel.FanOutIn(func(taskC chan<- func() error) { |
| var logC chan *logpb.LogEntry |
| if m.LogWriter != nil { |
| logC = make(chan *logpb.LogEntry) |
| @@ -145,6 +146,12 @@ func Archive(m Manifest) error { |
| } |
| } |
| }) |
| + |
| + // If any of the returned errors was transient, return a transient error. |
| + if errors.Any(err, errors.IsTransient) { |
|
dnj
2016/04/11 17:20:04
This causes the archival process to forward transi
|
| + err = errors.WrapTransient(err) |
| + } |
| + return err |
| } |
| func archiveLogs(w io.Writer, d *logpb.LogStreamDescriptor, logC <-chan *logpb.LogEntry, idx *indexBuilder) error { |