RFR 8205654: serviceability/dcmd/framework/HelpTest.java timed out
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Thu Jan 31 06:46:47 UTC 2019
Daniil and David,
Just wanted to let you know that I'm reviewing this.
On 1/20/19 21:18, David Holmes wrote:
> Thanks for the update Daniil. I still remain concerned about the
> robustness of the command-line parsing - this seems like a feature
> that needs its own set of tests.
I guess, the main David's concern is new file
src/jdk.jcmd/linux/classes/sun/tools/ProcessHelper.java
which includes introduced by Daniil command-line processing.
Thanks,
Serguei
>
> I'll leave it up to Serguei and others as to how to proceed.
>
> David
> -----
>
> On 19/01/2019 9:08 am, Daniil Titov wrote:
>> Hi David and Serguei,
>>
>> Please review a new version of the fix that now covers the case when
>> Java executes a module with the main class name explicitly specified
>> in the command line.
>>
>> Webrev: http://cr.openjdk.java.net/~dtitov/8205654/webrev.03
>> Bug: : https://bugs.openjdk.java.net/browse/JDK-8205654
>>
>> Thanks!
>> --Daniil
>>
>> On 1/8/19, 6:05 PM, "David Holmes" <david.holmes at oracle.com> wrote:
>>
>> Hi Daniil,
>> Sorry this slipped through the Xmas break cracks :)
>> On 22/12/2018 12:04 pm, Daniil Titov wrote:
>> > Hi David and Serguei,
>> >
>> > Please review a new version of the fix that for Linux platform
>> uses the proc filesystem to retrieve the main class name for the
>> running Java process.
>> >
>> > Webrev: http://cr.openjdk.java.net/~dtitov/8205654/webrev.02/
>> > Bug: https://bugs.openjdk.java.net/browse/JDK-8205654
>> It's more complex than I had envisaged but seems to be
>> doing the job.
>> I'm not sure how robust the command-line parsing is, in
>> particular it
>> doesn't handle these forms:
>> or java [options] -m <module>[/<mainclass>] [args...]
>> java [options] --module <module>[/<mainclass>] [args...]
>> (to execute the main class in a module)
>> I can't really comment on all the details.
>> Thanks,
>> David
>> -----
>> > Thanks,
>> > Daniil
>> >
>> > On 11/29/18, 4:52 PM, "David Holmes"
>> <david.holmes at oracle.com> wrote:
>> >
>> > Hi Daniil,
>> >
>> > On 30/11/2018 7:30 am, Daniil Titov wrote:
>> > > Thank you, David!
>> > >
>> > > The proposed fix didn't help. It still hangs at some
>> occasions. Additional tracing showed that when jcmd is invoked with
>> the main class name it iterates over all running Java processes and
>> temporary attaches to them to retrieve the main class name. It hangs
>> while trying to attach to one of the running Java processes. There
>> are numerous Java processes running at the host machine some
>> associated with the test framework itself and another with the tests
>> running in parallel. It is not clear what exact is this particular
>> process since the jcmd hangs before retrieving the process' main
>> class name, but after all tests terminated the process with this id
>> is no longer running. I have to revoke this review since more
>> investigation is required.
>> >
>> > That sounds like an unsolvable problem for the test. You
>> can't control
>> > other Java processes on the machine, and searching by
>> name requires
>> > asking each of them in turn.
>> >
>> > How do we get the list of Java processes in the first
>> place? Perhaps we
>> > need to do some /proc/<pid>/cmdline peeking?
>> >
>> > Cheers,
>> > David
>> >
>> > >
>> > > Best regards,
>> > > Daniil
>> > >
>> > >
>> > >
>> > > On 11/11/18, 1:35 PM, "David Holmes"
>> <david.holmes at oracle.com> wrote:
>> > >
>> > > Hi Daniil,
>> > >
>> > > I took a quick look at this one ... two minor
>> comments
>> > >
>> > > The static class names could just be "Process" as
>> they will acquire the
>> > > enclosing class name as part of their own name
>> anyway. As it is this
>> > > gets repeated eg:
>> > >
>> > > HelpTest$HelpTestProcess
>> > > InvalidCommandTest$InvalidCommandTestProcess
>> > >
>> > > TestJavaProcess.java:
>> > >
>> > > 39 public static void main(String argv[]) {
>> > >
>> > > Nit: Should be "String[] argv" in Java style
>> > >
>> > > Thanks,
>> > > David
>> > >
>> > > On 10/11/2018 3:18 PM, Daniil Titov wrote:
>> > > > Please review the change that fixes
>> serviceability/dcmd/framework/* tests from a time out. The fix for
>> JDK-8166642 made serviceability/dcmd/framework/* tests non-concurrent
>> to ensure that they don't interact with each other and there are no
>> multiple tests running simultaneously since all they do share the
>> common main class name com.sun.javatest.regtest.agent.MainWrapper.
>> However, it looks like the tests from other directories still might
>> run in parallel with these tests and they also have
>> com.sun.javatest.regtest.agent.MainWrapper as a main class.
>> > > >
>> > > > The fix ensures that each
>> serviceability/dcmd/framework/* test uses a Java process with a
>> unique main class name when connecting to this process with jcmd and
>> the main class name.
>> > > >
>> > > > Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8205654
>> > > > Webrev:
>> http://cr.openjdk.java.net/~dtitov/8205654/webrev.001/
>> > > >
>> > > > Best regards,
>> > > > Daniil
>> > > >
>> > > >
>> > >
>> > >
>> > >
>> >
>> >
>> >
>>
>>
More information about the serviceability-dev
mailing list