[
https://issues.apache.org/jira/browse/HBASE-15593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15238933#comment-15238933
]
Phil Yang commented on HBASE-15593:
-----------------------------------
{quote}
but in branch-1 the test failed.
{quote}
I think the issue is this:
{code:title=RpcRetryingCaller.java|borderStyle=solid}
private int getRemainingTime(int callTimeout) {
if (callTimeout <= 0) {
return 0;
} else {
if (callTimeout == Integer.MAX_VALUE) return Integer.MAX_VALUE;
int remainingTime = (int) (callTimeout -
(EnvironmentEdgeManager.currentTime() - this.globalStartTime));
if (remainingTime < MIN_RPC_TIMEOUT) {
// If there is no time left, we're trying anyway. It's too late.
// 0 means no timeout, and it's not the intent here. So we secure both
cases by
// resetting to the minimum.
remainingTime = MIN_RPC_TIMEOUT;
}
return remainingTime;
}
}
{code}
In RpcRetryingCaller.callWithRetries of branch-1, we will change the rpc
timeout if it is less than 2000 ms (introduced by HBASE-8764). My testcase is
based on a 666ms timeout so it failed.
In master, the MIN_RPC_TIMEOUT has been changed to 1 by HBASE-13286. But it was
only pushed to master...
So I think we can change this to 1 in this patches for branch-1.x directly in
this issue, right?
> Time limit of scanning should be offered by client
> --------------------------------------------------
>
> Key: HBASE-15593
> URL: https://issues.apache.org/jira/browse/HBASE-15593
> Project: HBase
> Issue Type: Bug
> Affects Versions: 1.2.0, 1.1.4
> Reporter: Phil Yang
> Assignee: Phil Yang
> Fix For: 2.0.0, 1.3.0, 1.4.0, 1.1.5, 1.2.2
>
> Attachments: HBASE-15593-v1.patch, HBASE-15593-v2.patch,
> HBASE-15593-v3.patch, HBASE-15593-v4.patch, HBASE-15593-v5.patch
>
>
> In RSRpcServices.scan, we will set a time limit equaling to
> Math.min(scannerLeaseTimeoutPeriod, rpcTimeout) / 2, and will response
> heartbeat message if we reach this limit. However, two timeout settings
> (hbase.client.scanner.timeout.period and hbase.rpc.timeout) are read from
> RS's configure, which may be different from client's. If client's setting is
> much less than server's, there may still be timeout at client side.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)