[
https://issues.apache.org/jira/browse/HBASE-16172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15365585#comment-15365585
]
Ted Yu commented on HBASE-16172:
--------------------------------
I can address the above in next patch.
The real timeout in ScannerCallableWithReplicas seems to be longer than timeout:
{code}
Future<Pair<Result[], ScannerCallable>> f = cs.poll(timeout,
TimeUnit.MILLISECONDS);
if (f != null) {
Pair<Result[], ScannerCallable> r = f.get(timeout,
TimeUnit.MILLISECONDS);
{code}
Potentially we may wait for 2 * timeout milliseconds.
Fix in another issue ?
> Unify the retry logic in ScannerCallableWithReplicas and
> RpcRetryingCallerWithReadReplicas
> ------------------------------------------------------------------------------------------
>
> Key: HBASE-16172
> URL: https://issues.apache.org/jira/browse/HBASE-16172
> Project: HBase
> Issue Type: Bug
> Reporter: Yu Li
> Assignee: Ted Yu
> Attachments: 16172.v1.txt, 16172.v2.txt, 16172.v2.txt
>
>
> The issue is pointed out by [~devaraj] in HBASE-16132 (Thanks D.D.), that in
> {{RpcRetryingCallerWithReadReplicas#call}} we will call
> {{ResultBoundedCompletionService#take}} instead of {{poll}} to dead-wait on
> the second one if the first replica timed out, while in
> {{ScannerCallableWithReplicas#call}} we still use
> {{ResultBoundedCompletionService#poll}} with some timeout for the 2nd replica.
> This JIRA aims at discussing whether to unify the logic in these two kinds of
> caller with region replica and taking action if necessary.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)