RFR: 8319055: JCMD should not buffer the whole output of commands

Thomas Stuefe stuefe at openjdk.org
Tue Feb 4 07:04:13 UTC 2025


On Mon, 3 Feb 2025 20:09:14 GMT, Alex Menkov <amenkov at openjdk.org> wrote:

>> Do you expect there will be follow up work at some point for the commands that upcall to Java and produce a byte[] to return to the tool?
>
>> Do you expect there will be follow up work at some point for the commands that upcall to Java and produce a byte[] to return to the tool?
> 
> I don't see much need in the functionality now (streaming output is useful for commands which produce lengthy output or take long time to execute), but we can add it if desired - need to wrap native writer to OutputStream and use the stream by java handlers (instead of byte buffer) to write command output.

@alexmenkov Oh, this is great, many thanks for doing this work! Good explanations too. I had a cursory view over the changes. Will do a more thorough review, and play around with this, when I am back home. 

With streaming, what is the expected behavior if a command takes too long? Jcmd stops with timeout, and the hotspot JVM then discards the results? 

Unless the tests are easy to fix, I don't see any problem with just running them in old buffered mode.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23405#issuecomment-2633044064


More information about the serviceability-dev mailing list