diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java index 81722cf..cf371a8 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClient.java @@ -55,6 +55,7 @@ import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.CellScanner; +import org.apache.hadoop.hbase.DoNotRetryIOException; import org.apache.hadoop.hbase.HBaseIOException; import org.apache.hadoop.hbase.HConstants; import org.apache.hadoop.hbase.ServerName; @@ -915,7 +916,10 @@ public class RpcClient { } catch (Throwable t) { failedServers.addToFailedServers(remoteId.address); IOException e = null; - if (t instanceof IOException) { + if (t instanceof Error) { + // something serious happened. Do not retry + e = new DoNotRetryIOException(t); + } else if (t instanceof IOException) { e = (IOException)t; markClosed(e); } else {