johnhomsea commented on a change in pull request #501: HBASE-22699 refactor
isMetaClearingException
URL: https://github.com/apache/hbase/pull/501#discussion_r314985343
##########
File path:
hbase-client/src/main/java/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.java
##########
@@ -59,18 +58,22 @@ public static boolean isMetaClearingException(Throwable
cur) {
if (cur == null) {
return true;
}
- return !isSpecialException(cur) || (cur instanceof RegionMovedException)
- || cur instanceof NotServingRegionException;
+ return !regionDefinitelyOnTheRegionServerException(cur);
}
- public static boolean isSpecialException(Throwable cur) {
- return (cur instanceof RegionMovedException || cur instanceof
RegionOpeningException
- || cur instanceof RegionTooBusyException || cur instanceof
RpcThrottlingException
- || cur instanceof MultiActionResultTooLarge || cur instanceof
RetryImmediatelyException
- || cur instanceof CallQueueTooBigException || cur instanceof
CallDroppedException
- || cur instanceof NotServingRegionException || cur instanceof
RequestTooBigException);
+ private static boolean regionDefinitelyOnTheRegionServerException(Throwable
t) {
+ return (t instanceof RegionTooBusyException || t instanceof
RpcThrottlingException
+ || t instanceof RetryImmediatelyException || t instanceof
CallQueueTooBigException
+ || t instanceof CallDroppedException || t instanceof
RequestTooBigException);
Review comment:
CallQueueTooBigException and CallDroppedException are exceptions which imply
the server is overload, so if we clear the meta here, there will be many
requests which cause the overload sending to the server where the meta is,
which may cause other problems? And because those two exceptions are
recoverable, the client may receive RegionMovedException etc if the region is
moved after the load is back to normal level and then will clear the meta?
Maybe both of them should inherit from DoNotRetryNowIOException or something
like that?
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services