Skip to content

Commit 9122357

Browse files
committed
dialers/retrier: m deep nil check r.conn on all retries
1 parent 3ffae33 commit 9122357

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

intra/dialers/retrier.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -419,14 +419,14 @@ func (r *retrier) Read(buf []byte) (n int, err error) {
419419
defer close(r.retryDoneCh) // signal that retry is complete or unnecessary
420420
var retryerr error
421421
// retry on errs like timeouts or connection resets
422-
for (c == nil || err != nil) && r.canRetryLocked() {
422+
for (c == nil || core.IsNil(c) || err != nil) && r.canRetryLocked() {
423423
r.retryCount++
424424
n, retryerr = r.retryWriteReadLocked(buf)
425425
c = r.conn // re-assign c to newConn, if any; may be nil
426-
if c == nil {
426+
if c == nil || core.IsNil(c) {
427427
err = core.UniqErr(err, retryerr)
428428
}
429-
logeor(retryerr, log.I)("retrier: read# %d + (mult? %t / c: %d): [%s<=%s] %d; err? %v",
429+
logeor(retryerr, log.I)("retrier: read#%d + (mult? %t / c: %d): [%s<=%s] %d; err? %v",
430430
r.retryCount, r.multidial, r.nextDialerIdx, laddr(c), r.raddr, n, retryerr)
431431
}
432432
if c != nil && core.IsNotNil(c) {
@@ -478,7 +478,7 @@ func (r *retrier) Write(b []byte) (int, error) {
478478
note = log.I
479479
}
480480

481-
logeor(err, note)("retrier: write: first?(%t) [%s=>%s] %d; 1st write-err? %v",
481+
logeor(err, note)("retrier: write: first?(%t) [%v=>%s] %d; 1st write-err? %v",
482482
sentAndCopied, src, r.raddr, n, err)
483483

484484
if sentAndCopied {

0 commit comments

Comments
 (0)