Skip to content

Taking Heap Dump does not work for tunnelled connection to a remote host #187

Description

@gerritgriebel

Installed current 2.0.1 (Build 200326); platform 20191008-unknown-revn on Mac OS X (10.15.4) , x86_64 64bit and clicked button "Heap Dump" on tab "Monitor" for a JMX-connection (service:jmx:rmi://localhost:10032/jndi/rmi://localhost:10031/jmxrmi) results in "Cannot take heap dump for ....". Heap dump for local VMs works.

User directory: /Users/gg/Library/Application Support/VisualVM/2.0.1
Cache directory: /Users/gg/Library/Caches/VisualVM/2.0.1

Using /Applications/VisualVM.app/Contents/MacOS/visualvm -J-Dnetbeans.logger.console=true the following startup message is issued:

INFO [org.netbeans.ui.metrics.laf]: USG_LOOK_AND_FEEL
Diagnostic information
Input arguments:
        -Djdk.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home
        -Dnetbeans.default_userdir_root=/Users/gg/Library/Application Support/VisualVM
        -Dnetbeans.dirs=/Applications/VisualVM.app/Contents/Resources/visualvm/visualvm:
        -Dnetbeans.home=/Applications/VisualVM.app/Contents/Resources/visualvm/platform
        -Xms24m
        -Xmx768m
        -Dnetbeans.accept_license_class=org.graalvm.visualvm.modules.startup.AcceptLicense
        -Dsun.jvmstat.perdata.syncWaitMs=10000
        -Dsun.java2d.noddraw=true
        -Dsun.java2d.d3d=false
        -Dorg.netbeans.core.TimeableEventQueue.quantum=360000
        -Dpolyglot.js.nashorn-compat=true
        -Dsun.misc.URLClassPath.disableJarChecking=true
        --add-exports=java.desktop/sun.awt=ALL-UNNAMED
        --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor.event=ALL-UNNAMED
        --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED
        --add-exports=java.desktop/sun.swing=ALL-UNNAMED
        --add-exports=jdk.attach/sun.tools.attach=ALL-UNNAMED
        --add-opens=java.base/java.net=ALL-UNNAMED
        --add-opens=java.base/java.lang.ref=ALL-UNNAMED
        --add-opens=java.base/java.lang=ALL-UNNAMED
        --add-opens=java.desktop/javax.swing=ALL-UNNAMED
        --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED
        -XX:+IgnoreUnrecognizedVMOptions
        -Dnetbeans.logger.console=true
        -XX:+HeapDumpOnOutOfMemoryError
        -XX:HeapDumpPath=/Users/gg/Library/Application Support/VisualVM/2.0.1/var/log/heapdump.hprof

Notice that XX:HeapDumpPath does not point to directory but to a filename.

On click of "Heap Dump" I get

Java HotSpot(TM) 64-Bit Server VM warning: GC locker is held; pre-heapdump GC was skipped
INFO [org.graalvm.visualvm.attach.AttachModelImpl]: takeHeapDump
INFO [org.graalvm.visualvm.jmx.impl.JmxSupport]: takeHeapDump
java.io.IOException: No such file or directory
	at sun.management.HotSpotDiagnostic.dumpHeap0(Native Method)
	at sun.management.HotSpotDiagnostic.dumpHeap(HotSpotDiagnostic.java:50)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
	at sun.reflect.GeneratedMethodAccessor275.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
	at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:193)
	at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:175)
	at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:117)
	at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:54)
	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
	at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
	at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
	at javax.management.StandardMBean.invoke(StandardMBean.java:405)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)
	at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
	at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)
	at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
	at sun.reflect.GeneratedMethodAccessor311.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:324)
	at sun.rmi.transport.Transport$1.run(Transport.java:200)
	at sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[catch] at java.lang.Thread.run(Thread.java:745)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions