hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Yang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15645) hbase.rpc.timeout is not used in operations of HTable
Date Wed, 20 Apr 2016 09:59:25 GMT

    [ https://issues.apache.org/jira/browse/HBASE-15645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15249580#comment-15249580
] 

Phil Yang commented on HBASE-15645:
-----------------------------------

{code:title=RpcRetryingCallerImpl.java}
if (duration > callTimeout) {
  String msg = "callTimeout=" + callTimeout + ", callDuration=" + duration +
      ": " + callable.getExceptionMessageAdditionalDetail();
  throw (SocketTimeoutException)(new SocketTimeoutException(msg).initCause(t));
}
{code}
When the callable.call timeout and interrupted, we will catch CallTimeoutException and wrap
it as a SocketTimeoutException to users. I agree that SocketTimeoutException can not explain
what is the real reason for timeout. But if we change it, it will be an incompatible change,
does it worth?

> hbase.rpc.timeout is not used in operations of HTable
> -----------------------------------------------------
>
>                 Key: HBASE-15645
>                 URL: https://issues.apache.org/jira/browse/HBASE-15645
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.0.0, 1.3.0, 1.2.1, 1.0.3, 1.1.4
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>            Priority: Critical
>             Fix For: 2.0.0, 1.3.0, 1.0.4, 1.4.0, 1.1.5, 1.2.2
>
>         Attachments: HBASE-15645-v1.patch, HBASE-15645-v2.patch, HBASE-15645-v3.patch,
HBASE-15645-v4.patch
>
>
> While fixing HBASE-15593, I find that we use operationTimeout as the timeout of Get operation
rpc call (hbase.client.scanner.timeout.period is used in scan rpc), not the hbase.rpc.timeout.
> This can be verified by add one line in TestHCM.setUpBeforeClass():
> {code}
> TEST_UTIL.getConfiguration().setLong(HConstants.HBASE_RPC_TIMEOUT_KEY, 3000);
> {code}
> and then run testOperationTimeout(), the test passes but it should have failed because
we should get rpc timeout first after 3 seconds then client should retry and timeout again
and again until operationTimeout or max retries reached.
> If I port this test to 0.98, it will fail as expected.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message