Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8339458

Deprecate jhsdb debugd for removal

XMLWordPrintable

    • Icon: CSR CSR
    • Resolution: Approved
    • Icon: P4 P4
    • 24
    • core-svc
    • None
    • minimal
    • The usage of `jhsdb debugd ..` and `jhsdb $TOOL --connect ..` is believed to very low.
    • add/remove/modify command line option
    • JDK

      Summary

      Deprecate the debug server feature, "jhsdb debugd", for removal in a future release.

      Problem

      "debugd" is a remote debug server, launched by the jhsdb tool. It provides an RMI interface for some of the debugging tools to work remotely (including jstack, jmap, jinfo, jsnap).

      The debug server is not widely used or well documented.

      RMI is not how modern applications communicate. It is an old transport with long term security concerns, and configuration difficulties with firewalls.

      With this in mind, the debugd remote debug server should be removed.

      Deprecating and removing the debug server will not affect usage of jhsdb tools for monitoring local VMs.

      Solution

      We will terminally deprecate the debug server feature offered by the "debugd" subcommand of the jhsdb command-line tool.

      The --connect option for the other jhsdb tools is also deprecated for removal. jhsdb commands using the --connect option attach to the debugd server. As we generally expect attaching between the same JDK version, a newer/later JDK with the ability to connect to an older/previous JDK which still has debubgd makes little sense.

      Specification

      The jhsdb tool will print warning messages to System.err on startup when the deprecated options are used.

      "jhsdb debugd" will print:

      WARNING: debugd is deprecated and will be removed in a future release.

      jhsdb commands using the --connect option will print:

      WARNING: --connect is deprecated and will be removed in a future release.

      There are no public interfaces affected.

      To make the deprecation obvious to any users of the private Java interface, who choose to reach inside the module, the annotation @Deprecated(since="24", forRemoval=true) will be used internally.

      Github PR: https://github.com/openjdk/jdk/pull/20830

            kevinw Kevin Walls
            kevinw Kevin Walls
            Alan Bateman, Daniel Daugherty
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: