RFR: 8263565: NPE was thrown when sun.jvm.hotspot.rmi.serverNamePrefix was set
Chris Plummer
cjplummer at openjdk.java.net
Tue Mar 16 00:44:17 UTC 2021
On Tue, 16 Mar 2021 00:17:09 GMT, Yasumasa Suenaga <ysuenaga at openjdk.org> wrote:
>> The fix looks fine. It would be nice if this was documented somewhere (and even tested). Also, while looking into this I noticed the following comment:
>>
>> // debugServerID follows the pattern [unique_id@]host[:port]
>> // we have to transform this as //host[:port]/<serverNamePrefix>['_'<unique_id>]
>>
>> The `[:port]` part is also not document, not even in the command line syntax for `sadebugd`
>
> Thanks @plummercj for your review!
>
>> The fix looks fine. It would be nice if this was documented somewhere (and even tested). Also, while looking into this I noticed the following comment:
>>
>> ```
>> // debugServerID follows the pattern [unique_id@]host[:port]
>> // we have to transform this as //host[:port]/<serverNamePrefix>['_'<unique_id>]
>> ```
>>
>> The `[:port]` part is also not document, not even in the command line syntax for `sadebugd`
>
> In addition `sun.jvm.hotspot.rmi.startRegistry` is also undocumented even though it works well.
> Both `serverNamePrefix` and `startRegistry` are not exposed as command line options of jhsdb, I think documentation. implementing testcases, and exposing as command line options should be done simultaneously. We need to change both command line help and manpage in that work (CSR is needed of course.)
>
> For example, I think we can expose them as following:
>
> $ jhsdb debugd --help
> :
> --disableregistry Do not start RMI registry (to use RMI registry that exists)
> --servernameprefix Specify RMI server name prefix
>
> $ jhsdb jinfo --help
> :
> --connect [<id>@]<host>[:registryport][/servernameprefix] To connect to a remote debug server (debugd).
> :
> Examples: jhsdb jinfo --pid 1234
> or jhsdb jinfo --core ./core.1234 --exe ./myexe
> or jhsdb jinfo --connect debugserver
> or jhsdb jinfo --connect id at debugserver:1234/prefix
>
> I will work for it if you are ok.
That looks fine, although I'm a little unclear about the need for `--disableregistry`, and how that applies to existing code.
Also, I think a bit of explanation of `[:registryport]` is needed since it is not also specified by the `jhsdb debugd` command. That's just the port that it chooses to communicate over, and can be any available port, right? If one is not specified, what port is chosen, and what would be a reason that you would want to specify a port?
-------------
PR: https://git.openjdk.java.net/jdk/pull/3000
More information about the serviceability-dev
mailing list