RFR: JDK-8019927: [TESTBUG] nsk/jvmti/GetThreadInfo/thrinfo001 intermittently fails with 'invalid thread group' when running with JFR
Alex Menkov
alexey.menkov at oracle.com
Sat Aug 25 00:11:19 UTC 2018
Hi Gary,
Removing 1st checkInfo (just after t_b.start()) looks good, but I don't
think 2nd checkInfo call should be dropped.
I'd rather added checkInfo for t_a after t_a.join()
Then the test will cover 3 cases - before thread is started, while
thread is running (checkInfo from thread.run()) and after thread
termination.
--alex
On 08/24/2018 05:19, Gary Adams wrote:
> David pointed out the flaw in this test a long time ago, but
> no one followed through to fix the test. When the test thread
> runs to completion, there is no way to get the thread info
> for the comparisons being made in checkInfo().
>
> The test already calls checkInfo before starting the thread
> and again in the test thread run method. The change below
> will make the thrinfo001a and thrinfo001b tests perform the
> same checking. It will avoid the race condition when thrinfo001b
> finishes quickly.
>
> Issue: https://bugs.openjdk.java.net/browse/JDK-8019927
>
>
> diff --git
> a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001.java
> b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001.java
> --- a/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001.java
> +++ b/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetThreadInfo/thrinfo001.java
> @@ -69,11 +69,9 @@
> t_b.setDaemon(true);
> checkInfo(t_b, t_b.getThreadGroup(), 2);
> t_b.start();
> - checkInfo(t_b, t_b.getThreadGroup(), 2);
> try {
> t_b.join();
> } catch (InterruptedException e) {}
> - checkInfo(t_b, t_b.getThreadGroup(), 2);
> return getRes();
> }
> }
>
More information about the serviceability-dev
mailing list