This is an automated email from the ASF dual-hosted git repository.

xingtanzjr pushed a commit to branch xingtanzjr/0511_test
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/xingtanzjr/0511_test by this 
push:
     new 3fb413cde1 add more connection cause
3fb413cde1 is described below

commit 3fb413cde17e8392b29413074632078a6fa48a91
Author: Jinrui.Zhang <[email protected]>
AuthorDate: Thu May 12 11:06:41 2022 +0800

    add more connection cause
---
 .../commons/client/sync/SyncThriftClientWithErrorHandler.java  | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/client/sync/SyncThriftClientWithErrorHandler.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/client/sync/SyncThriftClientWithErrorHandler.java
index ef1c9643a0..ad586d33bf 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/client/sync/SyncThriftClientWithErrorHandler.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/client/sync/SyncThriftClientWithErrorHandler.java
@@ -23,6 +23,7 @@ import net.sf.cglib.proxy.MethodInterceptor;
 import net.sf.cglib.proxy.MethodProxy;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.thrift.TException;
+import org.apache.thrift.transport.TTransportException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,8 +82,7 @@ public class SyncThriftClientWithErrorHandler implements 
MethodInterceptor {
             rootCause.getMessage(),
             rootCause.getLocalizedMessage(),
             rootCause);
-        if (rootCause instanceof SocketException
-            && rootCause.getMessage().contains("Broken pipe")) {
+        if (isConnectionBroken(rootCause)) {
           LOGGER.error(
               "Broken pipe error happened in calling method {}, we need to 
clear all previous cached connection, err: {}",
               method.getName(),
@@ -94,4 +94,10 @@ public class SyncThriftClientWithErrorHandler implements 
MethodInterceptor {
       throw new TException("Error in calling method " + method.getName(), t);
     }
   }
+
+  private boolean isConnectionBroken(Throwable cause) {
+    return (cause instanceof SocketException && 
cause.getMessage().contains("Broken pipe"))
+        || cause instanceof TTransportException
+            && cause.getMessage().contains("Socket is closed by peer");
+  }
 }

Reply via email to