diff --git a/protocol/dubbo/pool.go b/protocol/dubbo/pool.go
index 0ab43ede7f1bbee8b7d952ae2e4a210e9850b80a..c3b106efcb83ce50bc1697f32e5cdf987f714d4e 100644
--- a/protocol/dubbo/pool.go
+++ b/protocol/dubbo/pool.go
@@ -225,13 +225,13 @@ func (c *gettyRPCClient) close() error {
 	c.once.Do(func() {
 		// delete @c from client pool
 		c.pool.remove(c)
+		c.gettyClient.Close()
+		c.gettyClient = nil
 		for _, s := range c.sessions {
 			logger.Infof("close client session{%s, last active:%s, request number:%d}",
 				s.session.Stat(), s.session.GetActive().String(), s.reqNum)
 			s.session.Close()
 		}
-		c.gettyClient.Close()
-		c.gettyClient = nil
 		c.sessions = c.sessions[:0]
 
 		c.created = 0