Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Not A Problem
-
None
-
None
-
None
Description
I have been reading the code for the new async scan paths excessively, and noticed that there is a problem in the retrying layer for openScan RPCs.
In AsyncClientScanner#callOpenScanner() we are doing a open scan RPC. The retrying logic comes from using the single rpc retrying caller in openScanner(). However, we have the logic for failing the scanner if any of the RPC calls here:
stub.scan(controller, request, resp -> { if (controller.failed()) { future.completeExceptionally(controller.getFailed()); return; } future.complete(new OpenScannerResponse(loc, isRegionServerRemote, stub, controller, resp)); });
So, if the open scan gets an UnknownScannerException or something, instead of retrying, it just fails the whole scan.
Apache9 FYI.