RFR 8166642: serviceability/dcmd/framework/* timeout
Chris Plummer
chris.plummer at oracle.com
Wed Mar 14 06:49:48 UTC 2018
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.
>
> 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.
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