Apache9 commented on code in PR #6462:
URL: https://github.com/apache/hbase/pull/6462#discussion_r1890212678
##########
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java:
##########
@@ -300,13 +318,27 @@ private boolean scheduleForRetry(IOException e) {
if (numberOfAttemptsSoFar == 0 && unableToConnectToServer(e)) {
return false;
}
+
+ // Check if the num of attempts have crossed the retry limit, and if the
error type can
+ // fail-fast.
+ if (numberOfAttemptsSoFar >= failFastRetryLimit - 1 &&
isErrorTypeFailFast(e)) {
+ LOG
+ .warn("Number of retries {} exceeded limit {} for the given error
type. Scheduling server"
+ + " crash for {}", numberOfAttemptsSoFar + 1, failFastRetryLimit,
serverName, e);
+ // Expiring the server will schedule SCP and also reject the
regionserver report from the
+ // regionserver if regionserver is somehow able to send the
regionserver report to master.
+ // The master rejects the report by throwing YouAreDeadException,
which would eventually
+ // result in the regionserver abort.
+ // This will also remove "serverName" from the ServerManager's
onlineServers map.
+ master.getServerManager().expireServer(serverName);
Review Comment:
We do not return here? Just fall through to execute later logic?
##########
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RSProcedureDispatcher.java:
##########
@@ -371,6 +404,39 @@ private boolean isSaslError(IOException e) {
}
}
+ /**
+ * Returns true if the error or its cause is of type
ConnectionClosedException.
+ * @param e IOException thrown by the underlying rpc framework.
+ * @return True if the error or its cause is of type
ConnectionClosedException.
+ */
+ private boolean isConnectionClosedError(IOException e) {
+ if (e instanceof ConnectionClosedException) {
+ return true;
+ }
+ Throwable cause = e;
+ while (true) {
+ if (cause instanceof IOException) {
Review Comment:
I think we can only unwrap RemoteException, so here let's just test
RemoteException directly?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]