JDK 9 RFR of JDK-8132548: java/lang/ThreadGroup/Stop.java fails with "RuntimeException: Failure"
Amy Lu
amy.lu at oracle.com
Fri Jul 8 06:46:37 UTC 2016
Yes, but I just thought that for a test that testing a deprecated (since
1.2) API, and failed with very very low frequency (actually, only one
time during the years), we might not want to spend much effort on a big
change, like rewrite with CountDownLatch :-)
Thanks,
Amy
On 7/8/16 2:36 PM, Martin Buchholz wrote:
> CountDownLatch is a better way of waiting for events, like for the two
> threads to be started and for Thread.stop to have been called.
>
> The test should ensure that ThreadDeath is indeed thrown. If the
> threads in the group notify the main thread via a latch when they
> catch ThreadDeath, then all the sleeps in this test can be removed.
>
> On Thu, Jul 7, 2016 at 11:01 PM, Amy Lu <amy.lu at oracle.com
> <mailto:amy.lu at oracle.com>> wrote:
>
> Thank you Joe for your review.
>
> The intent is to give it more chance "for the thread group stop to
> be issued", not to extend the whole test execution timeout.
>
> I updated the webrev to make this in a retry, limit to 5 times of
> retry:
> http://cr.openjdk.java.net/~amlu/8132548/webrev.01/
> <http://cr.openjdk.java.net/%7Eamlu/8132548/webrev.01/>
>
> Thanks,
> Amy
>
>
> On 7/8/16 12:15 PM, joe darcy wrote:
>
> Hi Amy,
>
> I'm a bit uncomfortable with the fix as-is.
>
> Rather than hard-coding sleep values, if sleep values are
> needed I think it is a better practice to use ones that are
> scaled with the jtreg timeout factors, etc. used to run the
> tests. Please instead use something like the adjustTimeout
> method of
>
> $JDK_FOREST_ROOT/test/lib/share/classes/jdk/test/lib/Utils
>
> As a general comment, I'd prefer we don't just up timeout
> values for tests. That can cause the whole test suite run to
> slow down, which is undesirable especially if the condition in
> question may actually be satisfied in many cases much faster
> than the timeout value.
>
> Thanks,
>
> -Joe
>
>
> On 7/7/2016 7:01 PM, Amy Lu wrote:
>
> Please review this trivial fix for
> test:java/lang/ThreadGroup/Stop.java
>
> Though this is a test for a deprecated API, failed with
> very very low frequency and hard to reproduce (I got no
> luck to reproduce it), I’d like to patch it as suggested:
> extend the sleep in the main thread from one second to
> five seconds. Also added 'volatile' to the boolean
> variable 'groupStopped'.
>
> bug: https://bugs.openjdk.java.net/browse/JDK-8132548
> webrev:
> http://cr.openjdk.java.net/~amlu/8132548/webrev.00/
> <http://cr.openjdk.java.net/%7Eamlu/8132548/webrev.00/>
>
> Thanks,
> Amy
>
>
> --- old/test/java/lang/ThreadGroup/Stop.java 2016-07-04
> 14:53:59.000000000 +0800
> +++ new/test/java/lang/ThreadGroup/Stop.java 2016-07-04
> 14:53:58.000000000 +0800
> @@ -1,5 +1,5 @@
> /*
> - * Copyright (c) 1999, 2011, Oracle and/or its
> affiliates. All rights reserved.
> + * Copyright (c) 1999, 2016, Oracle and/or its
> affiliates. All rights reserved.
> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE
> HEADER.
> *
> * This code is free software; you can redistribute it
> and/or modify it
> @@ -29,7 +29,7 @@
> */
>
> public class Stop implements Runnable {
> - private static boolean groupStopped = false ;
> + private static volatile boolean groupStopped = false ;
> private static final Object lock = new Object();
>
> private static final ThreadGroup group = new
> ThreadGroup("");
> @@ -70,7 +70,7 @@
> while (!groupStopped) {
> lock.wait();
> // Give the other thread a chance to stop
> - Thread.sleep(1000);
> + Thread.sleep(5000);
> }
> }
>
>
>
>
>
>
More information about the core-libs-dev
mailing list