From 6590c0bf002f9cde5b3ebbee0ff6cc8188ced4c2 Mon Sep 17 00:00:00 2001
From: Ian Luo <ian.luo@gmail.com>
Date: Thu, 22 Oct 2020 22:42:22 +0800
Subject: [PATCH] re-connect if necessary to make sure the clienbt is
 available.

---
 remoting/getty/getty_client.go | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/remoting/getty/getty_client.go b/remoting/getty/getty_client.go
index aa69429fc..7c0c7c90d 100644
--- a/remoting/getty/getty_client.go
+++ b/remoting/getty/getty_client.go
@@ -204,12 +204,10 @@ func (c *Client) Request(request *remoting.Request, timeout time.Duration, respo
 	return perrors.WithStack(err)
 }
 
+// isAvailable returns true if the connection is available, or it can be re-established.
 func (c *Client) IsAvailable() bool {
-	client, err := c.pool.get()
-	if client == nil || !client.isAvailable() || err != nil {
-		return false
-	}
-	return true
+	_, _, err := c.selectSession(c.addr)
+	return err == nil
 }
 
 func (c *Client) selectSession(addr string) (*gettyRPCClient, getty.Session, error) {
-- 
GitLab