From 98b17f20a22ae1ee62a9fd305523a5221874356a Mon Sep 17 00:00:00 2001 From: lyuxuan Date: Fri, 15 Dec 2017 12:03:41 -0800 Subject: [PATCH] relocate check for shutdown in ac.tearDown() (#1723) --- clientconn.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/clientconn.go b/clientconn.go index a047d194..a2dd20f9 100644 --- a/clientconn.go +++ b/clientconn.go @@ -1333,6 +1333,9 @@ func (ac *addrConn) tearDown(err error) { ac.cancel() ac.mu.Lock() defer ac.mu.Unlock() + if ac.state == connectivity.Shutdown { + return + } ac.curAddr = resolver.Address{} if err == errConnDrain && ac.transport != nil { // GracefulClose(...) may be executed multiple times when @@ -1341,9 +1344,6 @@ func (ac *addrConn) tearDown(err error) { // address removal and GoAway. ac.transport.GracefulClose() } - if ac.state == connectivity.Shutdown { - return - } ac.state = connectivity.Shutdown ac.tearDownErr = err ac.cc.handleSubConnStateChange(ac.acbw, ac.state)