You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Reid Chan (Jira)" <ji...@apache.org> on 2020/09/14 09:13:00 UTC
[jira] [Comment Edited] (HBASE-25024) [Flake Test][branch-1]
TestClientOperationInterrupt#testInterrupt50Percent
[ https://issues.apache.org/jira/browse/HBASE-25024?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17195310#comment-17195310 ]
Reid Chan edited comment on HBASE-25024 at 9/14/20, 9:12 AM:
-------------------------------------------------------------
This test is too tricky.
{code}
2020-09-14 17:03:55,873 INFO [TestClientOperationInterrupt #36] client.TestClientOperationInterrupt$1(113): exception
java.io.InterruptedIOException
at org.apache.hadoop.hbase.ipc.BlockingRpcCallback.get(BlockingRpcCallback.java:64)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:330)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.access$200(AbstractRpcClient.java:94)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:571)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.get(ClientProtos.java:37226)
at org.apache.hadoop.hbase.client.HTable$3.call(HTable.java:855)
at org.apache.hadoop.hbase.client.HTable$3.call(HTable.java:845)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:143)
at org.apache.hadoop.hbase.client.HTable.get(HTable.java:863)
at org.apache.hadoop.hbase.client.HTable.get(HTable.java:828)
at org.apache.hadoop.hbase.client.TestClientOperationInterrupt$1.run(TestClientOperationInterrupt.java:110)
Caused by: java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at org.apache.hadoop.hbase.ipc.BlockingRpcCallback.get(BlockingRpcCallback.java:62)
... 10 more
{code}
A thread will only act as expected, when it is interrupted in the meantime it is calling BlockingRpcCallback#get. In most failed cases, the get() got results back already.
was (Author: reidchan):
This test is too tricky.
{code}
2020-09-14 17:03:55,873 INFO [TestClientOperationInterrupt #36] client.TestClientOperationInterrupt$1(113): exception
java.io.InterruptedIOException
at org.apache.hadoop.hbase.ipc.BlockingRpcCallback.get(BlockingRpcCallback.java:64)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:330)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.access$200(AbstractRpcClient.java:94)
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:571)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.get(ClientProtos.java:37226)
at org.apache.hadoop.hbase.client.HTable$3.call(HTable.java:855)
at org.apache.hadoop.hbase.client.HTable$3.call(HTable.java:845)
at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:143)
at org.apache.hadoop.hbase.client.HTable.get(HTable.java:863)
at org.apache.hadoop.hbase.client.HTable.get(HTable.java:828)
at org.apache.hadoop.hbase.client.TestClientOperationInterrupt$1.run(TestClientOperationInterrupt.java:110)
Caused by: java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at org.apache.hadoop.hbase.ipc.BlockingRpcCallback.get(BlockingRpcCallback.java:62)
... 10 more
{code}
A thread will only act as expected, when it is interrupted while in the meantime it is calling BlockingRpcCallback#get. In most failed cases, the get() got results.
> [Flake Test][branch-1] TestClientOperationInterrupt#testInterrupt50Percent
> --------------------------------------------------------------------------
>
> Key: HBASE-25024
> URL: https://issues.apache.org/jira/browse/HBASE-25024
> Project: HBase
> Issue Type: Improvement
> Reporter: Reid Chan
> Priority: Minor
> Fix For: 1.7.0
>
>
> Sometimes threads could finish faster before interrupt() gets called.
> {code}
> // ...
> t.start();
> }
> int expectedNoExNum = nbThread / 2;
> for (int i = 0; i < nbThread / 2; i++) {
> if (threads.get(i).getState().equals(Thread.State.TERMINATED)) {
> expectedNoExNum--;
> }
> threads.get(i).interrupt();
> }
> {code}
> So this test could get failed sometimes.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)