From abb7a5d860f8cdfdde1f8f2e0dfa2d77b721f5f3 Mon Sep 17 00:00:00 2001 From: Doug Fawley Date: Fri, 27 Sep 2019 09:59:14 -0700 Subject: [PATCH] clientconn: fix potential deadlock caused by ResetConnectBackoff --- clientconn.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/clientconn.go b/clientconn.go index a7643df7d29..43ef2548132 100644 --- a/clientconn.go +++ b/clientconn.go @@ -875,8 +875,9 @@ func (cc *ClientConn) resolveNow(o resolver.ResolveNowOption) { // This API is EXPERIMENTAL. func (cc *ClientConn) ResetConnectBackoff() { cc.mu.Lock() - defer cc.mu.Unlock() - for ac := range cc.conns { + conns := cc.conns + cc.mu.Unlock() + for ac := range conns { ac.resetConnectBackoff() } }