HBASE-17587 Do not Rethrow DoNotRetryIOException as UnknownScannerException
Signed-off-by: Andrew Purtell <apurtell@apache.org>
This commit is contained in:
parent
7294931e62
commit
537580bc51
|
@ -83,7 +83,6 @@ import org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException;
|
||||||
import org.apache.hadoop.hbase.exceptions.ScannerResetException;
|
import org.apache.hadoop.hbase.exceptions.ScannerResetException;
|
||||||
import org.apache.hadoop.hbase.filter.ByteArrayComparable;
|
import org.apache.hadoop.hbase.filter.ByteArrayComparable;
|
||||||
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
|
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
|
||||||
import org.apache.hadoop.hbase.io.hfile.CorruptHFileException;
|
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler;
|
import org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler;
|
||||||
import org.apache.hadoop.hbase.ipc.HBaseRpcController;
|
import org.apache.hadoop.hbase.ipc.HBaseRpcController;
|
||||||
import org.apache.hadoop.hbase.ipc.PriorityFunction;
|
import org.apache.hadoop.hbase.ipc.PriorityFunction;
|
||||||
|
@ -3095,12 +3094,17 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
|
||||||
// row that the client has last seen.
|
// row that the client has last seen.
|
||||||
closeScanner(region, scanner, scannerName, context);
|
closeScanner(region, scanner, scannerName, context);
|
||||||
|
|
||||||
|
// rethrow DoNotRetryIOException. This can avoid the retry in ClientScanner.
|
||||||
|
if (e instanceof DoNotRetryIOException) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
|
||||||
// If it is a CorruptHFileException or a FileNotFoundException, throw the
|
// If it is a FileNotFoundException, wrap as a
|
||||||
// DoNotRetryIOException. This can avoid the retry in ClientScanner.
|
// DoNotRetryIOException. This can avoid the retry in ClientScanner.
|
||||||
if (e instanceof CorruptHFileException || e instanceof FileNotFoundException) {
|
if (e instanceof FileNotFoundException) {
|
||||||
throw new DoNotRetryIOException(e);
|
throw new DoNotRetryIOException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We closed the scanner already. Instead of throwing the IOException, and client
|
// We closed the scanner already. Instead of throwing the IOException, and client
|
||||||
// retrying with the same scannerId only to get USE on the next RPC, we directly throw
|
// retrying with the same scannerId only to get USE on the next RPC, we directly throw
|
||||||
// a special exception to save an RPC.
|
// a special exception to save an RPC.
|
||||||
|
|
Loading…
Reference in New Issue