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

Reid Chan commented on HBASE-25024:
-----------------------------------

One more arguable point:
{code}
    for (int i = 0; i < nbThread / 2; i++) {
      if (threads.get(i).getState().equals(Thread.State.TERMINATED)) {
        expectedNoExNum--;
      }
      threads.get(i).interrupt();
    }
{code}
It only interrupts the first half, not actually random 50%. I tried this 
version which failed more often:
{code}
    for (int i = 0; i < nbThread; i += 2) {
      if (threads.get(i).getState().equals(Thread.State.TERMINATED)) {
        expectedNoExNum--;
      }
      threads.get(i).interrupt();
    }
{code}
So this test is really too tricky...

Step back, I'm not sure why this test has to achieve 50% interrupted.

> [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)

Reply via email to