RFR (S): 8223736:jvmti/scenarios/contention/TC04/tc04t001/TestDescription.java fails due to wrong number of MonitorContendedEntered events

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Fri Jun 21 00:23:31 UTC 2019


Thanks!
Serguei


On 6/20/19 17:22, Alex Menkov wrote:
> LGTM
>
> --alex
>
> On 06/20/2019 16:59, serguei.spitsyn at oracle.com wrote:
>> Hi Alex,
>>
>> Thank you a lot for review!
>>
>>
>>
>> On 6/20/19 16:30, Alex Menkov wrote:
>>> Hi Serguei,
>>>
>>> Main idea looks good.
>>>
>>> I'd simplify threads[i].join/threads[i].done logic with CountDownLatch
>>> (note also exception message ("Thread-" + i + " was interrupted by 
>>> timeout!") is not correct):
>>>
>>> in tc04t001 class add
>>>   final static CountDownLatch threadsDoneSignal = new 
>>> CountDownLatch(THREADS_LIMIT);
>>>
>>> replace cycle of threads[i].join / threads[i].done check with
>>>   if (!threadsDoneSignal.await(timeout, TimeUnit.MILLISECONDS)) {
>>>     throw new RuntimeException("Threads timeout");
>>>   }
>>> at the end of tc04t001Thread.run
>>> replace
>>>   done = true;
>>> with
>>>   tc04t001.threadsDoneSignal.countDown();
>>
>> Okay, thanks!
>> I've made this change.
>>
>> The updated webrev is:
>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2019/8223736-mon-events-test.2/ 
>>
>>
>> It also includes the changes suggested by Dan.
>>
>> Thanks,
>> Serguei
>>
>>>
>>> --alex
>>>
>>> On 06/19/2019 18:59, serguei.spitsyn at oracle.com wrote:
>>>> Sorry, forgot the  bug title to add to the email subject.
>>>>
>>>> Thanks,
>>>> Serguei
>>>>
>>>> On 6/19/19 6:09 PM, serguei.spitsyn at oracle.com wrote:
>>>>> Please review a fix for test bug:
>>>>>   https://bugs.openjdk.java.net/browse/JDK-8223736
>>>>>
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~sspitsyn/webrevs/2019/8223736-mon-events-test.1/ 
>>>>>
>>>>>
>>>>> Summary:
>>>>>  It seems that waiting for 0.5 sec for a MonitorContendedEnter 
>>>>> event in the
>>>>>  increment() method sometime is not enough (especially when the 
>>>>> JFR is enabled).
>>>>>  The fix implement an approach to ensure the event has posted 
>>>>> before the worker
>>>>>  thread goes to the next iteration.
>>>>>  Also, another check is added to diagnose if any of two worker 
>>>>> threads
>>>>>  (tc04t001Thread) has been interrupted by timeout.
>>>>>  In fact, we have many other tests which miss this kind of check 
>>>>> and diagnostics.
>>>>>  We may want to consider fixing other cases if we encounter this 
>>>>> eventually happens.
>>>>>
>>>>> Testing:
>>>>>  A mach5 test submission is in progress.
>>>>>
>>>>> Thanks,
>>>>> Serguei
>>>>>
>>>>
>>



More information about the serviceability-dev mailing list