You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jimmy Xiang (JIRA)" <ji...@apache.org> on 2013/08/09 02:31:47 UTC
[jira] [Updated] (HBASE-9167) ServerCallable retries just once if
timeout is not integer.max
[ https://issues.apache.org/jira/browse/HBASE-9167?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jimmy Xiang updated HBASE-9167:
-------------------------------
Attachment: 0.94-9167.patch
> 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
> Attachments: 0.94-9167.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