RFR 8166642: serviceability/dcmd/framework/* timeout

David Holmes david.holmes at oracle.com
Wed Mar 14 07:38:02 UTC 2018


On 14/03/2018 4:49 PM, Chris Plummer wrote:
> On 3/13/18 10:54 PM, David Holmes wrote:
>> Hi Daniil,
>>
>> On 14/03/2018 3:26 PM, Daniil Titov wrote:
>>> Please review the changes that fix intermittent timeout failure of 
>>> serviceability/dcmd/framework/* tests.
>>>
>>> The problem here is that these tests invoke jcmd in different ways 
>>> and one of such ways is when a main class is passed to the jcmd as a 
>>> VM identifier. The main class for jtreg test is 
>>> com.sun.javatest.regtest.agent.MainWrapper and in some cases more 
>>> than one test are running in parallel and there are multiple Java 
>>> processes with com.sun.javatest.regtest.agent.MainWrapper as a main 
>>> class . When it happens jcmd iterates over all Java processes that 
>>> match the condition (the main class equals to 
>>> com.sun.javatest.regtest.agent.MainWrapper) and executes the command 
>>> for each of them. That results in the jcmd invokes the given command 
>>> multiple times and attaches to Java processes not related to the 
>>> current test.
>>
>> It's good to finally find the root cause of the problem!
>>
>>> The fix makes serviceability/dcmd/framework/* tests non-concurrent to 
>>> ensure that they don't interact with other tests.
>>
>> This seems more of a workaround than a fix - though I don't know 
>> whether there is a way to distinguish multiple VMs all running what 
>> appears to be the same main class.
> The three tests are all intentionally testing the "jcmd <classname>" 
> functionality. A better fix (but not worth it IMHO) would be to spawn a 
> separate test process rather than using the main test process, which is 
> always going to share the main class name with other concurrently 
> running tests.

Yes uniquely named main classes would be better. I'll defer to you on 
the "worth it" part.

>>
>> My concern with the fix is how long it will take to run these tests 
>> sequentially, as they are run in tier2 and as part of the CI test job?
> They are quick tests and there are only 3 of them. They appear to take 
> less than 5 seconds each.

Great! Thanks Chris.

David

> Chris
>>
>> Thanks,
>> David
>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8166642
>>> Webrev: http://cr.openjdk.java.net/~dtitov/8166642/webrev.01
>>>
>>> The tests ran successfully with Mach5.
>>>
>>> Best regards,
>>> Daniil
>>>
>>>
> 


More information about the serviceability-dev mailing list