RFR (M) 8214892: Delayed starting of debugging via jcmd

Chris Plummer chris.plummer at oracle.com
Wed Dec 5 20:45:23 UTC 2018


Hi Ralf,

Overall looks good, but I do have a few suggestions and questions:

I think I prefer passing EI_VM_INIT for triggering_ei, but if you prefer 
to keep it as is, I suggest a comment to clarify why it might be out of 
range.

The help for "oncmd" says "debug triggered by jcmd?". I think your use 
of "cmd" should be more consistent. It's a dcmd providing the service, 
and jcmd is just one way to get at the dcmd. I'm not sure of the best 
way to convey this simply in the option name and help, but it should be 
consistent. "ondcmd" is probably most accurate, but "onjcmd" is probably 
what is most meaningful to users. I don't think it makes sense to use 
"oncmd" if the help is referring to jcmd.

Your error handling in debugInit_startDebuggingViaCommand() is a bit 
inconsistent. For !allowStartViaCmd you immediately return the error. 
For !allowStartViaCmd you set the error, and then need to do error 
checks later before eventually returning the error. It think you could 
just return the error right away and remove the error checking code that 
comes later.

It's not clear to me why you want the name and address of the first 
transport. Why is the first one necessarily the one you want?

1403         bagEnumerateOver(transports, getFirstTransport, &spec);
1404
1405         if ((spec != NULL) && (transport_name != NULL) && (address 
!= NULL)) {
1406             *transport_name = spec->name;
1407             *address = spec->address;
1408         }

thanks,

Chris

On 12/5/18 6:56 AM, Schmelter, Ralf wrote:
> Hi All,
>
> Please review the fix for the bug https://bugs.openjdk.java.net/browse/JDK-8214892. The webref is at http://cr.openjdk.java.net/~rrich/webrevs/schmelter/8214892/webrev.01/ .
>
> This change allows debugging to be started delayed, triggered by a jcmd name VM.start_java_debugging. It works more or less like the onthrow and onuncaught options, but instead of triggering by exception we trigger it via the jcmd. This is useful when we want to trigger debugging when we see errors not related to exceptions (e.g. if a server becomes unresponsive it could be taken out of the routing and debugging is triggered to find the cause).
>
> Best regards,
> Ralf





More information about the serviceability-dev mailing list