HBASE-17032 CallQueueTooBigException and CallDroppedException should not be triggering PFFE

This commit is contained in:
Mikhail Antonov 2016-11-04 17:30:17 -07:00
parent 8b4bb34ec2
commit a34a9adb22
2 changed files with 4 additions and 5 deletions

View File

@ -174,9 +174,7 @@ class PreemptiveFastFailInterceptor extends RetryingCallerInterceptor {
Throwable t2 = ClientExceptionsUtil.translatePFFE(t1);
boolean isLocalException = !(t2 instanceof RemoteException);
if ((isLocalException && ClientExceptionsUtil.isConnectionException(t2)) ||
ClientExceptionsUtil.isCallQueueTooBigException(t2) ||
ClientExceptionsUtil.isCallDroppedException(t2)) {
if ((isLocalException && ClientExceptionsUtil.isConnectionException(t2))) {
couldNotCommunicateWithServer.setValue(true);
guaranteedClientSideOnly.setValue(!(t2 instanceof CallTimeoutException));
handleFailureToServer(serverName, t2);

View File

@ -293,7 +293,7 @@ public class TestFastFail {
}
@Test
public void testCallQueueTooBigException() throws Exception {
public void testCallQueueTooBigExceptionDoesntTriggerPffe() throws Exception {
Admin admin = TEST_UTIL.getHBaseAdmin();
final String tableName = "testCallQueueTooBigException";
@ -327,7 +327,8 @@ public class TestFastFail {
} catch (Throwable ex) {
}
assertEquals("There should have been 1 hit", 1,
assertEquals("We should have not entered PFFE mode on CQTBE, but we did;"
+ " number of times this mode should have been entered:", 0,
CallQueueTooBigPffeInterceptor.numCallQueueTooBig.get());
newConf = HBaseConfiguration.create(TEST_UTIL.getConfiguration());