shahrs87 commented on a change in pull request #2322: URL: https://github.com/apache/hbase/pull/2322#discussion_r485216698
########## File path: hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java ########## @@ -968,6 +968,19 @@ private RegionLocations locateRegionInMeta(TableName tableName, byte[] row, bool } } + private void takeUserRegionLock() throws IOException { + try { + long waitTime = connectionConfig.getScannerTimeoutPeriod(); + if (!userRegionLock.tryLock(waitTime, TimeUnit.MILLISECONDS)) { Review comment: > If callable.prepare throw the LockTimeoutException, IIUC the code, callable.prepare will never throw LockTimeoutException. We throw LockTimeoutException [here](https://github.com/apache/hbase/blob/f3210c8908809fa154118454e6a23f57bc222db1/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java#L866) At this place we haven't created ReversedClientScanner object also. There is one retry loop [here](https://github.com/apache/hbase/blob/f3210c8908809fa154118454e6a23f57bc222db1/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionImplementation.java#L848) which will retry if exception is not TNFE or retries are not exhausted. @infraio please correct me if I misunderstood anything. ---------------------------------------------------------------- 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: us...@infra.apache.org