Hi -

I created JDK-8340121 to have the actual removal of RMI features visible... on 
the horizon somewhere... I did not mean to suggest it is going away very very 
soon.  I don't want to make a forward-looking statement or a promise, but I do 
not expect this to be acted on right now.  But I also don't want us to forget 
the idea of removing it in future.

Will need to look at your idea in more detail.

If there is any resistance or reason not to do this in the JDK, then I guess 
it's something that does not absolutely have to be in the JDK itself.  A 
proxy-like tool that is outside the JDK can work.  Yes it is likely more 
convenient to use if it's bundled in the JDK, but we would need to balance that 
convenience for some users with any ongoing maintenance etc for others.

Thanks
Kevin


-----Original Message-----
From: Yasumasa Suenaga <yasue...@gmail.com> 
Sent: Thursday, January 2, 2025 1:12 PM
To: serviceability-dev@openjdk.org
Cc: Yasumasa Suenaga <suen...@oss.nttdata.com>; Kevin Walls 
<kevin.wa...@oracle.com>
Subject: [External] : Alternative to sadebugd

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://urldefense.com/v3/__https://www.youtube.com/watch?v=5evMwwPUl14&t=346s__;!!ACWV5N9M2RV99hQ!NuxD4yot2sGNRM2ovu1uXExdmfovb9hK4Vsy0eFNRgniGUI1ElO6gzPaEx2Q6Btqs5c9rA57DQRGV_0QBQ$
 

So I want to alternative it to HTTP:
   
https://urldefense.com/v3/__https://github.com/openjdk/jdk/compare/master...YaSuenag:jdk:http-sadebugd__;!!ACWV5N9M2RV99hQ!NuxD4yot2sGNRM2ovu1uXExdmfovb9hK4Vsy0eFNRgniGUI1ElO6gzPaEx2Q6Btqs5c9rA57DQQf3ZTEeQ$
 

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 
https://urldefense.com/v3/__http://testhost:8080/__;!!ACWV5N9M2RV99hQ!NuxD4yot2sGNRM2ovu1uXExdmfovb9hK4Vsy0eFNRgniGUI1ElO6gzPaEx2Q6Btqs5c9rA57DQQeBBszCA$
 

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