@@ -4,9 +4,11 @@ import (
44 "context"
55 "errors"
66 "fmt"
7- "github.com/jfrog/jfrog-client-go/utils/errorutils "
7+ "strings "
88 "time"
99
10+ "github.com/jfrog/jfrog-client-go/utils/errorutils"
11+
1012 "github.com/jfrog/jfrog-client-go/utils/log"
1113)
1214
@@ -81,12 +83,36 @@ func (runner *RetryExecutor) getTimeoutErrorMsg() string {
8183}
8284
8385func (runner * RetryExecutor ) LogRetry (attemptNumber int , err error ) {
84- message := fmt .Sprintf ("%s(Attempt %v)" , runner .LogMsgPrefix , attemptNumber + 1 )
86+ message := fmt .Sprintf ("%s(Attempt %v of %v )" , runner .LogMsgPrefix , attemptNumber + 1 , runner . MaxRetries + 1 )
8587 if runner .ErrorMessage != "" {
8688 message = fmt .Sprintf ("%s - %s" , message , runner .ErrorMessage )
8789 }
8890 if err != nil {
89- message = fmt .Sprintf ("%s: %s" , message , err .Error ())
91+ errStr := err .Error ()
92+ switch {
93+ case strings .Contains (errStr , "i/o timeout" ):
94+ message = fmt .Sprintf ("%s: Temporary network timeout occurred, retrying..." , message )
95+ case strings .Contains (errStr , "connection refused" ):
96+ message = fmt .Sprintf ("%s: Connection refused - server may be temporarily unavailable, retrying..." , message )
97+ case strings .Contains (errStr , "no such host" ):
98+ message = fmt .Sprintf ("%s: DNS resolution failed - host may be temporarily unavailable, retrying..." , message )
99+ case strings .Contains (errStr , "connection reset" ):
100+ message = fmt .Sprintf ("%s: Connection was reset - network may be unstable, retrying..." , message )
101+ case strings .Contains (errStr , "TLS handshake timeout" ):
102+ message = fmt .Sprintf ("%s: TLS handshake timeout - server may be busy, retrying..." , message )
103+ case strings .Contains (errStr , "too many open files" ):
104+ message = fmt .Sprintf ("%s: System file limit reached - waiting for resources to be freed, retrying..." , message )
105+ case strings .Contains (errStr , "503" ):
106+ message = fmt .Sprintf ("%s: Service temporarily unavailable (503) - server is overloaded, retrying..." , message )
107+ case strings .Contains (errStr , "502" ):
108+ message = fmt .Sprintf ("%s: Bad gateway (502) - upstream server may be unavailable, retrying..." , message )
109+ case strings .Contains (errStr , "504" ):
110+ message = fmt .Sprintf ("%s: Gateway timeout (504) - upstream server is not responding, retrying..." , message )
111+ case strings .Contains (errStr , "429" ):
112+ message = fmt .Sprintf ("%s: Too many requests (429) - rate limit exceeded, retrying..." , message )
113+ default :
114+ message = fmt .Sprintf ("%s: %s" , message , errStr )
115+ }
90116 }
91117
92118 if err != nil || runner .ErrorMessage != "" {
0 commit comments