diff --git a/clientconn.go b/clientconn.go index 3fbfe297..db584ef3 100644 --- a/clientconn.go +++ b/clientconn.go @@ -1252,6 +1252,10 @@ func (ac *addrConn) createTransport(connectRetryNum, ridx int, backoffDeadline, return true, nil } ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return false, errConnClosing + } ac.state = connectivity.TransientFailure ac.cc.handleSubConnStateChange(ac.acbw, ac.state) ac.cc.resolveNow(resolver.ResolveNowOption{})