diff --git a/protocol/dubbo/pool.go b/protocol/dubbo/pool.go
index bff231e58156e34002d54de6d692462936012778..cdd2a10a471dd906fc77d165991752cc7d7e266b 100644
--- a/protocol/dubbo/pool.go
+++ b/protocol/dubbo/pool.go
@@ -300,7 +300,7 @@ func (p *gettyRPCClientPool) getGettyRpcClient(protocol, addr string) (*gettyRPC
 		p.conns = p.conns[:len(p.conns)-1]
 
 		if d := now - conn.getActive(); d > p.ttl {
-			if closeErr := conn.safeClose(); closeErr != nil {
+			if closeErr := conn.safeClose(); closeErr == nil {
 				p.remove(conn)
 			}
 			continue
@@ -331,7 +331,7 @@ func (p *gettyRPCClientPool) release(conn *gettyRPCClient, err error) {
 	}
 
 	if len(p.conns) >= p.size {
-		if closeErr := conn.safeClose(); closeErr != nil {
+		if closeErr := conn.safeClose(); closeErr == nil {
 			// delete @conn from client pool
 			p.remove(conn)
 		}