[
https://issues.apache.org/jira/browse/HBASE-9167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13745123#comment-13745123
]
Jimmy Xiang commented on HBASE-9167:
------------------------------------
I have the same feeling about the timeout thing, which is a member of
ConnectionId, the cache key, and timeout keeps changing depending on the retry.
However, the proxy itself is cached too, which ties to one RPC timeout, which
makes it hard to have a crystal clear picture. +1 to simplify/fix this.
> ServerCallable retries just once if timeout is not integer.max
> --------------------------------------------------------------
>
> Key: HBASE-9167
> URL: https://issues.apache.org/jira/browse/HBASE-9167
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 0.94.10
> Reporter: Jimmy Xiang
> Assignee: Jimmy Xiang
> Fix For: 0.94.12
>
> Attachments: 0.94-9167.patch, 0.94-9167_v2.patch
>
>
> If callTimeout is not integer.max and throwable is not
> SocketTimeoutException, we set the callTimeout to a negative value since
> endTime is not set yet. Therefore, the next call will always throw
> SocketTimeoutException.
> {noformat}
> if (this.callTimeout != HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT)
> if (throwable instanceof SocketTimeoutException
> || (this.endTime - this.startTime > this.callTimeout)) {
> throw (SocketTimeoutException) (SocketTimeoutException) new
> SocketTimeoutException(
> "Call to access row '" + Bytes.toString(row) + "' on table '"
> + Bytes.toString(tableName)
> + "' failed on socket timeout exception: " + throwable)
> .initCause(throwable);
> } else {
> ===> this.callTimeout = ((int) (this.endTime - this.startTime));
> }
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira