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 638f9d3461b..141b85585b9 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 @@ -109,16 +109,12 @@ public class RSProcedureDispatcher protected void remoteDispatch(final ServerName serverName, final Set remoteProcedures) { final int rsVersion = master.getServerManager().getVersionNumber(serverName); - if (rsVersion >= RS_VERSION_WITH_EXEC_PROCS) { - LOG.trace("Using procedure batch rpc execution for serverName={} version={}", serverName, - rsVersion); - submitTask(new ExecuteProceduresRemoteCall(serverName, remoteProcedures)); - } else if (rsVersion == 0 && !master.getServerManager().isServerOnline(serverName)) { + if (rsVersion == 0 && !master.getServerManager().isServerOnline(serverName)) { submitTask(new DeadRSRemoteCall(serverName, remoteProcedures)); } else { - LOG.info(String.format( - "Fallback to compat rpc execution for serverName=%s version=%s", - serverName, rsVersion)); + // See HBASE-21237, fallback to CompatRemoteProcedureResolver for now. Since + // ExecuteProceduresRemoteCall will group all the open/close requests. If one + // fails, master will regard all the requests as failure and then cause some trouble. submitTask(new CompatRemoteProcedureResolver(serverName, remoteProcedures)); } }