RFR 6720349: NotificationBufferDeadlockTest.java throw exception: java.lang.Exception: TEST FAILED: Deadlock detected

David Holmes david.holmes at oracle.com
Tue Jan 6 02:46:20 UTC 2015


Hi Shanliang,

On 6/01/2015 3:47 AM, shanliang wrote:
> Hi,
>
> Please review this fix:
>
> bug: https://bugs.openjdk.java.net/browse/JDK-8068418
> webrev: http://cr.openjdk.java.net/~sjiang/JDK-8068418/00/
>
> This must be a timing issue in the test, the test called:
>     t.join(5000L); to wait a thread's dying,  I reproduced the bug by
> insert at line 202:
>     try {
>         Thread.sleep(5100);
>     } catch (Exception ee) {}
> to delay the t's dying.
>
> The fix is to replace:
>     t.join(5000L);
> by:
>     t.join();
>
> and replace:
>     Object.wait(timeout);
> by
>     CountDownLatch.countDown();

Okay - you could have just done wait() but the switch to CountDownLatch 
is somewhat cleaner.

> The test harness timeout will be used as the max waiting timeout.

So the test will now never report that it thinks it has hit a deadlock, 
it will just timeout. But you added some extra printout so okay I guess 
- but I suggest adding a comment at the top (where @run etc are) saying 
that if test times out then deadlock is suspected.

Minor nit:

  System.out.println("DeadlockTest-addNotificationListener waiting the 
XXX thread to die.

should say "waiting for the XXX thread ..."

Thanks,
David

> Shanliang


More information about the serviceability-dev mailing list