From a2af715e60889844e22000af0fef72de2d2f7a86 Mon Sep 17 00:00:00 2001
From: AlexStocks <alexstocks@foxmail.com>
Date: Sat, 31 Aug 2019 23:43:10 +0800
Subject: [PATCH] Fix: gettyRPCClientPool.remove deadlock

---
 protocol/dubbo/pool.go | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/protocol/dubbo/pool.go b/protocol/dubbo/pool.go
index 546a5b335..a8bb6522b 100644
--- a/protocol/dubbo/pool.go
+++ b/protocol/dubbo/pool.go
@@ -275,6 +275,7 @@ func (p *gettyRPCClientPool) close() {
 func (p *gettyRPCClientPool) getGettyRpcClient(protocol, addr string) (*gettyRPCClient, error) {
 
 	p.Lock()
+	defer p.Unlock()
 	if p.conns == nil {
 		return nil, errClientPoolClosed
 	}
@@ -291,11 +292,9 @@ func (p *gettyRPCClientPool) getGettyRpcClient(protocol, addr string) (*gettyRPC
 		}
 		conn.created = now //update created time
 
-		p.Unlock()
 		return conn, nil
 	}
 	// create new conn
-	p.Unlock()
 	return newGettyRPCClientConn(p, protocol, addr)
 }
 
-- 
GitLab