Hi all,

sadebugd and related options in jhsdb have been deprecated by JDK-8338894 since 
JDK 24. I agree with RMI removal from SA, but I'd like to keep remote debugger 
feature for some cases.

For example, sadebugd can be used to debug in distroless container on 
Kubernetes. As you know distroless container does not have any shell, and also 
no JDK tools including jhsdb. If we want to analyze hang-up'ed JVM in it with 
HSDB, we have to attach ephemeral container and expose the port for debugging 
to connect from HSDB.
I talked about use case of jhsdb debugd on Kubernetes (in Japanese...)
https://www.youtube.com/watch?v=5evMwwPUl14&t=346s

So I want to alternative it to HTTP:
  https://github.com/openjdk/jdk/compare/master...YaSuenag:jdk:http-sadebugd

This change works with some CLHSDB commands (jstack, findsym at least). Note 
that it has some errors and does not have some implementations and test cases.

You can use this following command:

  Server: jhsdb httpserver --host testhost --port 8080 --pid <PID>
  Client: jhsdb clhsdb --httpconnect http://testhost:8080/

This change transports debugging data on HTTP. We can set reverse proxy (for 
HTTPS endpoint and/or authentication) for secure connection if need.


Remote debugging removal has been filed as JDK-8340121. It does not seem to be 
targeted, but the work might be started soon. So I'd like to make alternatives 
by then.

What do you think?


Thanks,

Yasumasa

Reply via email to