Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
0.90.7, 0.92.1, 0.94.0, 0.95.2
-
None
-
Reviewed
-
Adds a sequence id that is incremented on each Scanner#next invocation so we can distingush calls that arrive out of order. Throws OutOfOrderScannerNextException when we encounter the latter case.
Description
I'm seeing the following behavior:
- set RPC timeout to a short value
- call next() for some batch of rows, big enough so the client times out before the result is returned
- the HConnectionManager stuff will retry the next() call to the same server. At this point, one of two things can happen: 1) the previous next() call will still be processing, in which case you get a LeaseException, because it was removed from the map during the processing, or 2) the next() call will succeed but skip the prior batch of rows.