@@ -136,7 +136,7 @@ func calcTimeout(rtt time.Duration) time.Duration {
136136 // These values were chosen to have a <1% false positive rate based on test data.
137137 // False positives trigger an unnecessary retry, which can make connections slower, so they are
138138 // worth avoiding. However, overly long timeouts make retry slower and less useful.
139- return 400 * time .Millisecond + max (2 * rtt , 100 * time .Millisecond )
139+ return 500 * time .Millisecond + min (2 * rtt , 100 * time .Millisecond )
140140}
141141
142142// DialWithSplitRetry returns a TCP connection that transparently retries by
@@ -448,8 +448,8 @@ func (r *retrier) Read(buf []byte) (n int, err error) {
448448 if n == 0 && err == nil {
449449 err = io .ErrNoProgress
450450 }
451- logeor (err , note )("retrier: read: %s: [%s<=%s] b: %d/%d (tee: %d); err: %v" ,
452- r .dialerID (), laddr (c ), r .raddr , n , len (buf ), len (r .tee ), err )
451+ logeor (err , note )("retrier: read: %s: [%s<=%s]; t: %s; b: %d/%d (tee: %d); err: %v" ,
452+ r .dialerID (), laddr (c ), r .raddr , core . FmtPeriod ( r . timeout ), n , len (buf ), len (r .tee ), err )
453453 } // else: needs retry as c == nil
454454
455455 note = log .D
@@ -476,21 +476,21 @@ func (r *retrier) Read(buf []byte) (n int, err error) {
476476 retryReadErr = nil // break
477477 err = nil // return no error
478478 }
479- logeor (retryReadErr , note )("retrier: read: %s: #%d + (mult? %d %T / c: %d): [%s<=%s] b:%d/%d; err? %v" ,
480- r .dialerID (), r .retryCount , len (r .dialers ), c , r .nextDialerIdx , laddr (c ), r .raddr , n , len (buf ), retryReadErr )
479+ logeor (retryReadErr , note )("retrier: read: %s: #%d + (mult? %d %T / c: %d): [%s<=%s]; t: %s; b:%d/%d; err? %v" ,
480+ r .dialerID (), r .retryCount , len (r .dialers ), c , r .nextDialerIdx , core . FmtPeriod ( r . timeout ), laddr (c ), r .raddr , n , len (buf ), retryReadErr )
481481 }
482482 if c != nil && core .IsNotNil (c ) {
483483 // caller might have set read or write deadlines before the retry
484484 _ = c .SetReadDeadline (r .readDeadline )
485485 _ = c .SetWriteDeadline (r .writeDeadline )
486486 }
487- logeor (err , note )("retrier: read: %s: #%d + (mult? %d / %d) [%s<=%s] b: %d/%d; err? %v" ,
488- r .dialerID (), r .retryCount , len (r .dialers ), r .nextDialerIdx , laddr (c ), r .raddr , n , len (buf ), err )
487+ logeor (err , note )("retrier: read: %s: #%d + (mult? %d / %d) [%s<=%s]; t: %s; b: %d/%d; err? %v" ,
488+ r .dialerID (), r .retryCount , len (r .dialers ), r .nextDialerIdx , core . FmtPeriod ( r . timeout ), laddr (c ), r .raddr , n , len (buf ), err )
489489 r .tee = nil // discard teed data
490490 return
491491 }
492- logeor (err , note )("retrier: read: %s already retried! [%s<=%s] b: %d/%d; err? %v" ,
493- r .dialerID (), laddr (c ), r .raddr , n , len (buf ), err )
492+ logeor (err , note )("retrier: read: %s already retried! [%s<=%s]; t: %s; b: %d/%d; err? %v" ,
493+ r .dialerID (), laddr (c ), r .raddr , core . FmtPeriod ( r . timeout ), n , len (buf ), err )
494494 } // else: just one read is enough; no retry needed
495495 return
496496}
@@ -545,8 +545,8 @@ func (r *retrier) Write(b []byte) (int, error) {
545545 note = log .I
546546 }
547547
548- logeor (err , note )("retrier: write: %s: (first? %t, sent? %t) (rtimeout: %dms) [%v=>%s] b: %d/%d (tee: %d); write-err? %v" ,
549- r .dialerID (), first , sentAndCopied , r . timeout . Milliseconds (), src , r .raddr , n , len (b ), len (r .tee ), err )
548+ logeor (err , note )("retrier: write: %s: (first? %t, sent? %t) [%v=>%s]; t: %s; b: %d/%d (tee: %d); write-err? %v" ,
549+ r .dialerID (), first , sentAndCopied , src , r .raddr , core . FmtPeriod ( r . timeout ) , n , len (b ), len (r .tee ), err )
550550
551551 if sentAndCopied {
552552 // if Write() does not wait for <-retryDoneCh in absence of errors,
@@ -569,8 +569,8 @@ func (r *retrier) Write(b []byte) (int, error) {
569569 select {
570570 case <- r .retryDoneCh :
571571 case <- time .After (3 * maxExpectedReadTimeout ): // arb high timeout; it should rarely if ever needed
572- log .W ("retrier: write: %s: 1st write timed-out waiting for %dms [calc-rtt: %dms ] 1st read b/w [%s=>%s], mult: %d, b: %d/%d, err: %v" ,
573- r .dialerID (), ( 3 * maxExpectedReadTimeout ). Milliseconds (), r .timeout . Milliseconds ( ), src , r .raddr , len (r .dialers ), n , len (b ), err )
572+ log .W ("retrier: write: %s: 1st write timed-out waiting for %s [calc-rtt: %s ] 1st read b/w [%s=>%s], mult: %d, b: %d/%d, err: %v" ,
573+ r .dialerID (), core . FmtPeriod ( 3 * maxExpectedReadTimeout ), core . FmtPeriod ( r .timeout ), src , r .raddr , len (r .dialers ), n , len (b ), err )
574574 return n , core .JoinErr (err , errRetryTimeout )
575575 }
576576
0 commit comments