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