On Thu, 22 Jan 2026 13:47:27 GMT, Yasumasa Suenaga <[email protected]> wrote:

>> Can you please provide an example where IOException is thrown? The code in 
>> the catch block to use MonitoredHost.getMonitoredHost is surprising (the 
>> only dependency on jvmstat should be in the enumerate/list implementation).
>> 
>> If URISyntaxException is not possible then it would be okay to throw an 
>> AssertionError or InternalError here.
>> 
>> It would be useful to get an example or two of when MonitorException is 
>> thrown. That seems a reason candidate to wrap in an 
>> AttachOperationFailedException but I think have a specific example or two 
>> would help the discussion.
>> 
>> It would be good to re-flow the comment in findTargetProcessTmpDirectory to 
>> reduce the wildly long lines. Right now it is really hard to look at the 
>> changes side-by-side.
>
>> Can you please provide an example where IOException is thrown? 
> 
> I could not produce IOException, but it might occur if filesystem is broken.
> AccessDeniedException would happen as following. We can see it easy on attach 
> to rootless container.
> 
> # ./jcmd 1 VM.version
> 1:
> java.nio.file.AccessDeniedException: /proc/1/root/tmp
>         at 
> java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
>         at 
> java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:108)
>         at 
> java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:113)
>         at 
> java.base/sun.nio.fs.UnixFileSystemProvider.isSameFile(UnixFileSystemProvider.java:391)
>         at java.base/java.nio.file.Files.isSameFile(Files.java:1418)
>         at 
> jdk.attach/sun.tools.attach.VirtualMachineImpl.findTargetProcessTmpDirectory(VirtualMachineImpl.java:280)
>         at 
> jdk.attach/sun.tools.attach.VirtualMachineImpl.findSocketFile(VirtualMachineImpl.java:236)
>         at 
> jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:87)
>         at 
> jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:56)
>         at 
> jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:201)
>         at jdk.jcmd/sun.tools.jcmd.JCmd.executeCommandForPid(JCmd.java:113)
>         at jdk.jcmd/sun.tools.jcmd.JCmd.main(JCmd.java:97)
> 
> 
>> It would be useful to get an example or two of when MonitorException is 
>> thrown. 
> 
> As I said before, I cannot find out the location to throw MonitorException in 
> JDK source around attach mechanism, but it might happen if the user uses 
> custom attach provider. Anyway it is checked exception, so it shouldn't 
> ignore or raise assertion error.

Okay, I think we can go with wrapping these exceptions with 
AttachOperationFailedException.

Are you planning to re-flow/cleanup findTargetProcessTmpDirectory as part of 
this PR?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29355#discussion_r2725111955

Reply via email to