Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id F233218D7A for ; Wed, 30 Dec 2015 23:56:50 +0000 (UTC) Received: (qmail 39331 invoked by uid 500); 30 Dec 2015 23:56:50 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 39230 invoked by uid 500); 30 Dec 2015 23:56:50 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 38766 invoked by uid 99); 30 Dec 2015 23:56:50 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Dec 2015 23:56:50 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id E89042C1F76 for ; Wed, 30 Dec 2015 23:56:49 +0000 (UTC) Date: Wed, 30 Dec 2015 23:56:49 +0000 (UTC) From: "Hudson (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-15018) Inconsistent way of handling TimeoutException in the rpc client implementations MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-15018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15075532#comment-15075532 ] Hudson commented on HBASE-15018: -------------------------------- FAILURE: Integrated in HBase-1.1-JDK7 #1633 (See [https://builds.apache.org/job/HBase-1.1-JDK7/1633/]) HBASE-15018 Inconsistent way of handling TimeoutException in the rpc (busbey: rev bab0f0f48f610084a17368e948d695e3f157be9a) * hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AsyncRpcClient.java * hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/AbstractRpcClient.java * hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcClientImpl.java * hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/AbstractTestIPC.java > Inconsistent way of handling TimeoutException in the rpc client implementations > ------------------------------------------------------------------------------- > > Key: HBASE-15018 > URL: https://issues.apache.org/jira/browse/HBASE-15018 > Project: HBase > Issue Type: Bug > Components: Client, IPC/RPC > Affects Versions: 2.0.0, 1.1.0, 1.2.0 > Reporter: Ashish Singhi > Assignee: Ashish Singhi > Fix For: 2.0.0, 1.2.0, 1.3.0, 1.1.3 > > Attachments: HBASE-15018-v1(1).patch, HBASE-15018-v1.patch, HBASE-15018-v2.patch, HBASE-15018-v3-branch-1.patch, HBASE-15018-v3.patch, HBASE-15018.patch, HBASE-15018.patch > > > If there is any rpc timeout when using RpcClientImpl then we wrap the exception in IOE and throw it, > {noformat} > 2015-11-16 04:05:24,935 WARN [main-EventThread.replicationSource,peer2] regionserver.HBaseInterClusterReplicationEndpoint: Can't replicate because of a local or network error: > java.io.IOException: Call to host-XX:16040 failed on local exception: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=510, waitTime=180001, operationTimeout=180000 expired. > at org.apache.hadoop.hbase.ipc.RpcClientImpl.wrapException(RpcClientImpl.java:1271) > at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1239) > at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213) > at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287) > at org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$BlockingStub.replicateWALEntry(AdminProtos.java:25690) > at org.apache.hadoop.hbase.protobuf.ReplicationProtbufUtil.replicateWALEntry(ReplicationProtbufUtil.java:77) > at org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint$Replicator.call(HBaseInterClusterReplicationEndpoint.java:322) > at org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint$Replicator.call(HBaseInterClusterReplicationEndpoint.java:308) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: org.apache.hadoop.hbase.ipc.CallTimeoutException: Call id=510, waitTime=180001, operationTimeout=180000 expired. > at org.apache.hadoop.hbase.ipc.Call.checkAndSetTimeout(Call.java:70) > at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1213) > ... 10 more > {noformat} > But that isn't case with AsyncRpcClient, we don't wrap and throw CallTimeoutException as it is. > {noformat} > 2015-12-21 14:27:33,093 WARN [RS_OPEN_REGION-host-XX:16201-0.replicationSource.host-XX%2C16201%2C1450687255593,1] regionserver.HBaseInterClusterReplicationEndpoint: Can't replicate because of a local or network error: > org.apache.hadoop.hbase.ipc.CallTimeoutException: callId=2, method=ReplicateWALEntry, rpcTimeout=600000, param {TODO: class org.apache.hadoop.hbase.protobuf.generated.AdminProtos$ReplicateWALEntryRequest} > at org.apache.hadoop.hbase.ipc.AsyncRpcClient.call(AsyncRpcClient.java:257) > at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:217) > at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:295) > at org.apache.hadoop.hbase.protobuf.generated.AdminProtos$AdminService$BlockingStub.replicateWALEntry(AdminProtos.java:23707) > at org.apache.hadoop.hbase.protobuf.ReplicationProtbufUtil.replicateWALEntry(ReplicationProtbufUtil.java:73) > at org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint$Replicator.call(HBaseInterClusterReplicationEndpoint.java:387) > at org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint$Replicator.call(HBaseInterClusterReplicationEndpoint.java:370) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > {noformat} > I think we should have same behavior across both the implementations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)