RFR(9): 8176533: REGRESSION: a java process is not recognized by jcmd/jinfo/jstack/jmap tool

Robbin Ehn robbin.ehn at oracle.com
Wed Mar 15 17:41:37 UTC 2017

Hi all, please review:

When starting the VM with agentlib and suspended, jcmd/jinfo/jstack/jmap don't work until a debugger have attach.

There is an underlying issue with AttachProvider that don't list that VM even if it's attachable.
That issue is present in JDK 8 (“jcmd -l” don’t list this process).

This fix only fixes the regression by not validating the pid against available VirtualMachineDescriptors.
One problem with not validating is that we will send SIGQUIT to that pid even if it’s not a java process, but it’s the same behavior as JDK 8.

The regression was introduced by https://bugs.openjdk.java.net/browse/JDK-8156537

VirtualMachineDescriptor was not easily create-able from just a string pid, you need an AttachProvider.
I instead change so we use a collection of pids where applicable.

Webrev: http://cr.openjdk.java.net/~rehn/8176533/webrev/
Issue: https://bugs.openjdk.java.net/browse/JDK-8176533

Passes jdk/test/sun/tools/ and internal test group.
Manual tested the regression case.

A new issue for the AttachProvider will be filed.



More information about the hotspot-runtime-dev mailing list