Skip to content

Commit a71337a

Browse files
committed
update retry.Do errors
1 parent d0ba47d commit a71337a

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

retry/retry.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,20 @@ func NewRetriableError(err string) error {
1919
return &retriableError{err}
2020
}
2121

22-
type merrs []string
22+
type merrs []error
2323

2424
func (e merrs) Err() error {
2525
if len(e) == 0 {
2626
return nil
2727
}
28-
return errors.New(strings.Join(e, ";"))
28+
if len(e) == 1 {
29+
return e[0]
30+
}
31+
errStr := make([]string, 0, len(e))
32+
for i := range e {
33+
errStr = append(errStr, e[i].Error())
34+
}
35+
return errors.New(strings.Join(errStr, ";"))
2936
}
3037

3138
// Do will retry attempts time after callback failed, and wait for d duration between each callback
@@ -39,7 +46,7 @@ func Do(attempts int, callback func() error, d time.Duration) error {
3946
if err == nil {
4047
return nil
4148
}
42-
errs = append(errs, err.Error())
49+
errs = append(errs, err)
4350
if _, ok := err.(*retriableError); !ok {
4451
return errs.Err()
4552
}

0 commit comments

Comments
 (0)