-
Task
-
Resolution: Fixed
-
Minor
According to the information from evernat in JENKINS-52092, Monitoring Plugin 1.73.0 requires "-Djdk.attach.allowAttachSelf=true" to be set on master and agent side in order to have the memory histogram in JDK 9. (Edit: with an enhancement in the monitoring plugin 1.73.1, it does not attach itself to the VM in order to get heap histogram in JDK 9. So this plugin does not require to add "-Djdk.attach.allowAttachSelf=true".)
We still have some plugins attaching to JDK (e.g. File Leak detector plugin), so maybe we need a generic solution for Jenkins packaging (or some documentation about "-Djdk.attach.allowAttachSelf=true").
- relates to
-
JENKINS-52092 Update Monitoring Plugin to Java Melody 1.73.0
-
- Resolved
-
By reading code, yes the File leak detector plugin is calling the attach method on a com.sun.tools.attach.VirtualMachine instance which may throw something like
java.io.IOException: Can not attach to current VM
at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.(HotSpotVirtualMachine.java:75)
at jdk.attach/sun.tools.attach.VirtualMachineImpl.(VirtualMachineImpl.java:56)
at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:73)
at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:249)
The workaround for this exception is to add "-Djdk.attach.allowAttachSelf=true" in the java command line.
Except that the file leak detector plugin does not attach from the same process. It creates another java process and attaches to the Jenkins VM from there.
So I don't think that the file leak detector plugin will fail on JDK 9. The plugin may not be aware of new methods in JDK 9 to leak files but otherwise, I think it will work.