[
https://issues.apache.org/jira/browse/HBASE-14822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15071147#comment-15071147
]
Samarth Jain commented on HBASE-14822:
--------------------------------------
[~lhofhansl] - to be clear, I did test the patch. Phoenix queries which would
have failed with lease timeout exceptions are now passing. So functionally your
patch works. However, the patch ended up causing an inadvertent performance
regression. Calling renew lease ends up increasing the nextCallSeq too. The
subsequent OutOfOrderScannerNextException thrown is handled silently (once) by
the ClientScanner#loadCache code which ends up setting the callable object to
null.
{code}
if (e instanceof OutOfOrderScannerNextException) {
if (retryAfterOutOfOrderException) {
retryAfterOutOfOrderException = false;
} else {
// TODO: Why wrap this in a DNRIOE when it already is a DNRIOE?
throw new DoNotRetryIOException("Failed after retry of " +
"OutOfOrderScannerNextException: was there a rpc timeout?", e);
}
}
// Clear region.
this.currentRegion = null;
{code}
I am calling renewLease and scanner.next() using the same ClientScanner in
different threads. However, I have proper synchronization in place that makes
sure I am not calling both at the same time. It doesn't seem like a concurrency
issue as I can reproduce this behavior consistently.
> Renewing leases of scanners doesn't work
> ----------------------------------------
>
> Key: HBASE-14822
> URL: https://issues.apache.org/jira/browse/HBASE-14822
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.98.14
> Reporter: Samarth Jain
> Assignee: Lars Hofhansl
> Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.3, 0.98.17, 1.0.4
>
> Attachments: 14822-0.98-v2.txt, 14822-0.98-v3.txt, 14822-0.98.txt,
> 14822-v3-0.98.txt, 14822-v4-0.98.txt, 14822-v4.txt, 14822-v5-0.98.txt,
> 14822-v5-1.3.txt, 14822-v5.txt, 14822.txt, HBASE-14822_98_nextseq.diff
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)