You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Viraj Jasani (Jira)" <ji...@apache.org> on 2023/08/29 17:21:00 UTC

[jira] [Commented] (HBASE-28050) RSProcedureDispatcher to fail-fast for SaslException

    [ 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)