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 01:59:47 UTC

[jira] [Created] (HBASE-9167) ServerCallable retries just once if timeout is not integer.max

Jimmy Xiang created HBASE-9167:
----------------------------------

             Summary: 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


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