RFR [7181748] TEST_BUG: java/lang/ThreadGroup/Suspend test fails intermittently

David Holmes david.holmes at oracle.com
Tue Jun 11 07:08:21 UTC 2013


On 11/06/2013 1:54 AM, Chris Hegarty wrote:
> I'm not sure I ever saw this test fail, but it does look like it has
> issues.
>
> I would much prefer to see a j.u.c.Latch/Phaser used to synchronize
> across these threads.

I don't think that is possible. The main thread wants to reset the count 
after the suspend has been issued by "first", but once the suspend has 
been issued the "first" thread can't signal the synchronizer to let the 
main thread proceed. The poll around isAlive() does address the main 
issue of a slowly starting thread.

For completeness the count variable should be volatile as well.

Cheers,
David

> -Chris.
>
> On 10/06/2013 13:51, Ivan Gerasimov wrote:
>> Hello everyone!
>>
>> The test of ThreadGroup.Suspend() was reported to fail on rare occasions.
>> It can happen on a busy machine that 1 second delay would not be enough
>> for the second thread to start.
>> Then the first thread would suspend only itself and the test would fail.
>> Earlier, another test was updated for similar reasons [1], [2].
>>
>> The proposed test can still report false *positive* results if the
>> second thread has had no chance to execute during one second after it
>> had started.
>> To avoid them there must be a way do distinguish suspended threads.
>>
>> WEBREV: http://cr.openjdk.java.net/~igerasim/7181748/webrev.0/
>> BUG: http://bugs.sun.com/view_bug.do?bug_id=7181748
>>
>>
>> [1] http://bugs.sun.com/view_bug.do?bug_id=7084033
>> [2] http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/184578f3e8b9
>>
>> Sincerely yours,
>> Ivan Gerasimov
>> <https://jbs.oracle.com/bugs/browse/JDK-7084033>



More information about the core-libs-dev mailing list