[ 
https://issues.apache.org/jira/browse/HBASE-28050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17760044#comment-17760044
 ] 

Viraj Jasani commented on HBASE-28050:
--------------------------------------

The changes are not complicated but this requires thorough testing
{code:java}
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
index ac2c971b02..eeeab029a6 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java
@@ -22,6 +22,7 @@ import java.lang.Thread.UncaughtExceptionHandler;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
+import javax.security.sasl.SaslException;
 import org.apache.hadoop.hbase.CallQueueTooBigException;
 import org.apache.hadoop.hbase.DoNotRetryIOException;
 import org.apache.hadoop.hbase.ServerName;
@@ -287,6 +288,11 @@ public class RSProcedureDispatcher extends 
RemoteProcedureDispatcher<MasterProce
           serverName, getMaxWaitTime());
         return false;
       }
+      if (e instanceof SaslException || e.getCause() instanceof SaslException 
|| (
+        e.getCause() != null && e.getCause().getCause() instanceof 
SaslException)) {
+        LOG.warn("{} is throwing SaslException; give up", serverName, e);
+        return false;
+      }
       if (e instanceof DoNotRetryIOException) {
         LOG.warn("{} tells us DoNotRetry due to {}, try={}, give up", 
serverName, e.toString(),
           numberOfAttemptsSoFar); {code}

> RSProcedureDispatcher to fail-fast for SaslException
> ----------------------------------------------------
>
>                 Key: HBASE-28050
>                 URL: https://issues.apache.org/jira/browse/HBASE-28050
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Viraj Jasani
>            Priority: Major
>
> As discussed on the parent Jira, let's mark the remote procedures fail when 
> we encounter SaslException (GSS initiate failed) as this belongs to the 
> category of known IOException where we are certain that the request has not 
> yet reached to the target regionserver yet.
> This should help release dispatcher threads for other 
> ExecuteProceduresRemoteCall executions.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to