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

Lars Hofhansl commented on HBASE-7602:
--------------------------------------

Ahh.. Looks like trunk has a fix for this:
{code}
    while (pool.getCompletedTaskCount() < 2) {
      Threads.sleep(1);
    }
{code}
We need to be more diligent with test fixes in trunk. Those have to go into 
0.94 as well.
I'll test this in 0.94 and since this is already in trunk just commit if 
everything looks fine.

(could still think about removing the test though)

                
> TestFromClientSide.testPoolBehavior is incorrect
> ------------------------------------------------
>
>                 Key: HBASE-7602
>                 URL: https://issues.apache.org/jira/browse/HBASE-7602
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.96.0, 0.94.5
>
>
> The writer of this test misunderstood ThreadPoolExecutor.
> The test adds Threads as tasks to a ThreadPoolExecutor and then calls join on 
> the Thread objects. But these are not the running threads, it work by pure 
> accident, because Thread happens to implement Runnable.
> {code}
> pool.submit(threads.get(0));
> ...
> threads.get(0).join();
> {code}
> The join will always return immediately, because the thread never ran.
> This should instead synchronize on the Future returned from submit instead, 
> otherwise there is no guarantee that the threads in the pool actually 
> finished.

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

Reply via email to