VisualVM
@visualvm
Welcome to the VisualVM/Feedback chat. Let's share your feedback and discuss with the VisualVM developers and community!
wirowka
@wirowka
hello
anybody there?
Jiri Sedlacek
@jisedlac
Hi - feel free to leave your feedback or comments here. Thanks!
wirowka
@wirowka
hi Jiri, could you please take a look at oracle/visualvm#24 ?
Jiri Sedlacek
@jisedlac
Sure - added a comment to the bugreport.
wirowka
@wirowka
Thx, Jiri could you please check my last comment?
Falko Modler
@famod

Hi! I am trying to use Startup Profiler plugin to profile a maven plugin execution. The connection succeeds and VisualVM is doing something (the progress bar "Profiler is busy" pops up a couple of times) but it does not display any live data.
At the end of the execution VisualVM asks whether or not to take a snapshot but nothing happens when confirming.
I couldn't find any errors in the logfile.
What am I doing wrong?

VisualVM 1.3.9, --jdkhome ... and -J-Djava.io.tmpdir=... are set appropriately.

Environment:
Java version: 1.8.0_102, vendor: Oracle Corporation
Java home: C:\Develop\CCS\jdk1.8.0_102\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

Jiri Sedlacek
@jisedlac
Hi Falko, the problem may be caused by wrong setup of the classes to be profiled. Please file a new Issue and provide as many details as possible, including the provided settings (http://visualvm.github.io/startupprofiler.html#profsettings) and VisualVM logfile saved after the unsuccessful profiling session (Help | About | Logfile).
Falko Modler
@famod
Thanks, will do!
Falko Modler
@famod

@jisedlac After not being able to reproduce the issue on my private PC I did some more research and I finally have a solution:

  1. I have to add -Djava.rmi.server.hostname=localhost to MAVEN_OPTS. Don't know why, probably due to some special network setup on my company laptop.
    See also: https://stackoverflow.com/a/36192913

  2. I have to start visualvm.exe from the very same console/path which I use for starting maven which is rather irritating because I've already set --jdkhome etc.

philchung
@philchung
The Coherence 12.2.1 JVisualVM plugin has to be manually installed from a maven repo. Could it be added to the list of available plugins? https://search.maven.org/remotecontent?filepath=com/oracle/coherence/incubator/coherence-jvisualvm/12.5.0/coherence-jvisualvm-12.5.0.nbm
Paul Gardiner
@pgardiner
Do you have any idea where I can find the plugin, or source code for the Memory Pools plugin by Kodewerk? It was on the old java.net site, but I can't find it anywhere, including the Plugins page here.
Tomas Hurka
@thurka
@pgardiner You have to ask Kirk Pepperdine, he wrote this plugin. it looks like he is going to upload plugin sources at github. More details in oracle/visualvm#25
Tomas Hurka
@thurka
@philchung I don't know. You should ask someone from Coherence team, if they want to add it as official VisualVM plugin. If they are OK with it, I think I can add it to VisualVM plugins (JVisualVM will be complicated).
george udosen
@udoyen
hello all
@thurka I would like to know if JVisualVM and VisualVM are one and the same?
Jiri Sedlacek
@jisedlac
Hello @udoyen, Java VisualVM is a rebranded and relicenced VisualVM, the tools are almost identical in terms of features. Java VisualVM lacks some plugins which are available for VisualVM. See http://visualvm.github.io/releases.html for details on which VisualVM version is distributed in JDK releases.
rscadrde
@rscadrde
My Visual VM 1.3.9 is starting, showing local java applications but then it is no longer responding. ProcessMonitor shows access of temp directory only. (happens with jdk 1.8_151 and _131 and 1.7_80)
Tomas Hurka
@thurka
@rscadrde Please take a thread dump of the non-responding VisualVM process. This can help us diagnose your problem.
rscadrde
@rscadrde
EventQueue hangs here:
Thread [AWT-EventQueue-0] (Suspended)
waiting for: org.netbeans.ModuleManager$SystemClassLoader (id=6734)
org.netbeans.ModuleManager$SystemClassLoader.getResourcesImpl(java.lang.String) line: 700
org.netbeans.ModuleManager$SystemClassLoader(org.netbeans.ProxyClassLoader).getResources(java.lang.String) line: 390
org.openide.util.lookup.MetaInfServicesLookup.search(java.lang.Class<?>, java.util.Collection<org.openide.util.lookup.AbstractLookup.Pair<?>>) line: 199
org.openide.util.lookup.MetaInfServicesLookup.beforeLookup(org.openide.util.Lookup.Template<?>) line: 156
org.openide.util.lookup.MetaInfServicesLookup.beforeLookupResult(org.openide.util.Lookup.Template<?>) line: 135
org.openide.util.lookup.MetaInfServicesLookup(org.openide.util.lookup.AbstractLookup).lookup(org.openide.util.Lookup.Template<T>) line: 483
org.openide.util.lookup.ProxyLookup$R.initResults() line: 390
org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(boolean, boolean) line: 669
org.openide.util.lookup.ProxyLookup$R.computeResult(int, boolean) line: 549
org.openide.util.lookup.ProxyLookup$R.allInstances(boolean) line: 509
org.openide.util.lookup.ProxyLookup$R.allInstances() line: 505
org.netbeans.core.startup.MainLookup(org.openide.util.Lookup).lookupAll(java.lang.Class<T>) line: 271
org.netbeans.core.windows.services.DialogDisplayerImpl.customizeDlg(org.netbeans.core.windows.services.NbPresenter) line: 332
org.netbeans.core.windows.services.DialogDisplayerImpl.access$000(org.netbeans.core.windows.services.NbPresenter) line: 76
org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.showDialog() line: 262
org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.run() line: 192
java.awt.event.InvocationEvent.dispatch() line: 311
java.awt.EventQueue.dispatchEventImpl(java.awt.AWTEvent, java.lang.Object) line: 756
java.awt.EventQueue.access$500(java.awt.EventQueue, java.awt.AWTEvent, java.lang.Object) line: 97
java.awt.EventQueue$3.run() line: 709
java.awt.EventQueue$3.run() line: 703
java.security.AccessController.doPrivileged(java.security.PrivilegedAction<T>, java.security.AccessControlContext) line: not available [native method]
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(java.security.PrivilegedAction<T>, java.security.AccessControlContext, java.security.AccessControlContext) line: 80
java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent) line: 726
java.awt.EventDispatchThread.pumpOneEventForFilters(int) line: 201
java.awt.EventDispatchThread.pumpEventsForFilter(int, java.awt.Conditional, java.awt.EventFilter) line: 116
java.awt.EventDispatchThread.pumpEventsForHierarchy(int, java.awt.Conditional, java.awt.Component) line: 105
java.awt.EventDispatchThread.pumpEvents(int, java.awt.Conditional) line: 101
java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional) line: 93
java.awt.EventDispatchThread.run() line: 82
Corresponding Thread that holds the Lock:

System Thread [pool-4-thread-1] (Suspended)
owns: org.netbeans.core.NbAuthenticator (id=6738)
owns: java.lang.Class (sun.net.www.protocol.http.NegotiateAuthentication) (id=3137)
owns: org.netbeans.ModuleManager$SystemClassLoader (id=6734)
owns: sun.net.www.protocol.https.DelegateHttpsURLConnection (id=6739)
waiting for: org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery (id=6737)
java.lang.Object.wait(long) line: not available [native method]
org.netbeans.core.windows.services.DialogDisplayerImpl.notify(org.openide.NotifyDescriptor, boolean) line: 297
org.netbeans.core.windows.services.DialogDisplayerImpl.notify(org.openide.NotifyDescriptor) line: 173
org.netbeans.core.NbAuthenticator.getPasswordAuthentication() line: 101
java.net.Authenticator.requestPasswordAuthentication(java.lang.String, java.net.InetAddress, int, java.lang.String, java.lang.String, java.lang.String, java.net.URL, java.net.Authenticator$RequestorType) line: 317
sun.net.www.protocol.http.spnego.NegotiateCallbackHandler.getAnswer() line: 65
sun.net.www.protocol.http.spnego.NegotiateCallbackHandler.handle(javax.security.auth.callback.Callback[]) line: 86
com.sun.security.auth.module.Krb5LoginModule.promptForName(boolean) line: 858
com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(boolean) line: 704
com.sun.security.auth.module.Krb5LoginModule.login() line: 617
sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method, java.lang.Object, java.lang.Object[]) line: not available [native method]
sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 62
sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object, java.lang.Object[]) line: 43
java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object...) line: 498
javax.security.auth.login.LoginContext.invoke(java.lang.String) line: 755
javax.security.auth.login.LoginContext.access$000(javax.security.auth.login.LoginContext, java.lang.String) line: 195
javax.security.auth.login.LoginContext$4.run() line: 682
javax.security.auth.login.LoginContext$4.run() line: 680
java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction<T>, java.security.AccessControlContext) line: not available [native method]
javax.security.auth.login.LoginContext.invokePriv(java.lang.String) line: 680
javax.security.auth.login.LoginContext.login() line: 587
sun.security.jgss.GSSUtil.login(sun.security.jgss.GSSCaller, org.ietf.jgss.Oid) line: 258
sun.security.jgss.krb5.Krb5Util.getTicket(sun.security.jgss.GSSCaller, java.lang.String, java.lang.String, java.security.AccessControlContext) line: 158
sun.security.jgss.krb5.Krb5InitCredential$1.run() line: 335
sun.security.jgss.krb5.Krb5InitCredential$1.run() line: 331
java.security.AccessController.doPrivileged(java.security.PrivilegedExceptionAction<T>) line: not available [native method]
sun.security.jgss.krb5.Krb5InitCredential.getTgt(sun.security.jgss.GSSCaller, sun.security.jgss.krb5.Krb5NameElement, int) line: 330
sun.security.jgss.krb5.Krb5InitCredential.getInstance(sun.security.jgss.GSSCaller, sun.security.jgss.krb5.Krb5NameElement, int) line: 145
sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(sun.security.jgss.spi.GSSNameSpi, int, int, int) line: 122
sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(sun.security.jgss.spi.GSSNameSpi, sun.security.jgss.spi.GSSCredentialSpi, int) line: 187
sun.security.jgss.GSSManagerImpl.getMechanismContext(sun.security.jgss.spi.GSSNameSpi, sun.security.jgss.spi.GSSCredentialSpi, int, org.ietf.jgss.Oid) line: 224
sun.security.jgss.GSSContextImpl.initSecContext(java.io.InputStream, java.io.OutputStream) line: 212
sun.security.jgss.GSSContextImpl.initSecContext(byte[], int, int) line: 179
sun.security.jgss.spnego.SpNegoContext.GSS_initSecContext(byte[]) line: 882
sun.security.jgss.spnego.SpNegoContext.initSecContext(java.io.InputStream, int) line: 317
sun.security.jgss.GSSContextImpl.initSecCon
sun.security.jgss.GSSContextImpl.initSecContext(java.io.InputStream, java.io.OutputStream) line: 212    
sun.security.jgss.GSSContextImpl.initSecContext(byte[], int, int) line: 179    
sun.security.jgss.spnego.SpNegoContext.GSS_initSecContext(byte[]) line: 882    
sun.security.jgss.spnego.SpNegoContext.initSecContext(java.io.InputStream, int) line: 317    
sun.security.jgss.GSSContextImpl.initSecContext(java.io.InputStream, java.io.OutputStream) line: 248    
sun.security.jgss.GSSContextImpl.initSecContext(byte[], int, int) line: 179    
sun.net.www.protocol.http.spnego.NegotiatorImpl.init(sun.net.www.protocol.http.HttpCallerInfo) line: 108    
sun.net.www.protocol.http.spnego.NegotiatorImpl.<init>(sun.net.www.protocol.http.HttpCallerInfo) line: 117    
sun.reflect.NativeConstructorAccessorImpl.newInstance0(java.lang.reflect.Constructor<?>, java.lang.Object[]) line: not available [native method]    
sun.reflect.NativeConstructorAccessorImpl.newInstance(java.lang.Object[]) line: 62    
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(java.lang.Object[]) line: 45    
java.lang.reflect.Constructor.newInstance(java.lang.Object...) line: 423    
sun.net.www.protocol.http.Negotiator.getNegotiator(sun.net.www.protocol.http.HttpCallerInfo) line: 63    
sun.net.www.protocol.http.NegotiateAuthentication.isSupportedImpl(sun.net.www.protocol.http.HttpCallerInfo) line: 138    
sun.net.www.protocol.http.NegotiateAuthentication.isSupported(sun.net.www.protocol.http.HttpCallerInfo) line: 111    
sun.net.www.protocol.http.AuthenticationHeader.parse(java.util.Set<java.lang.String>) line: 200    
sun.net.www.protocol.http.AuthenticationHeader.<init>(java.lang.String, sun.net.www.MessageHeader, sun.net.www.protocol.http.HttpCallerInfo, boolean, java.util.Set<java.lang.String>) line: 143    
sun.net.www.protocol.https.DelegateHttpsURLConnection(sun.net.www.protocol.http.HttpURLConnection).doTunneling() line: 2097    
sun.net.www.protocol.https.DelegateHttpsURLConnection(sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection).connect() line: 183    
sun.net.www.protocol.https.HttpsURLConnectionImpl.connect() line: 162    
org.netbeans.modules.autoupdate.updateprovider.NetworkAccess$Task$2.call() line: 166    
org.netbeans.modules.autoupdate.updateprovider.NetworkAccess$Task$2.call() line: 148    
java.util.concurrent.FutureTask.run() line: 266    
java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) line: 1149    
java.util.concurrent.ThreadPoolExecutor$Worker.run() line: 624    
java.lang.Thread.run() line: 748    
rscadrde
@rscadrde
I just created a Bug Ticket: oracle/visualvm#48
Cleber Baldan Junior
@cbaldan

Hello. I´m trying to install VisualVM 1.4 into my Eclipse Luna 4.4.2 X64, but it's failing.
What is odd to me is that it shows as version 1.1.2

Does it support Eclipse Luna or I have to update it?
Thanks.

An error occurred while collecting items to be installed
session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: org.eclipse.update.feature,VisualVM_Launcher,1.1.2
No repository found containing: osgi.bundle,org.eclipse.visualvm.launcher.common,1.1.2
No repository found containing: osgi.bundle,org.eclipse.visualvm.launcher.java,1.1.0
No repository found containing: osgi.bundle,org.eclipse.visualvm.launcher.pde,1.1.0
cbfiddle
@cbfiddle
I am trying to run VisualVM.app on macOS. It complains about the JDK version it is running on. How do I manually configure the JDK selection? I have not found any information in the documentation.
Tomas Hurka
@thurka
@cbfiddle Please see discussion in oracle/visualvm#13. In my comment at the end of the discussion, I am explaining how to configure JDK for VisualVM.
White Rabbit
@umes4ever
hi
i need to know whats the performance impact when running CPU profiler in visualvm?
Jiri Sedlacek
@jisedlac
@umes4ever Hi, the impact can be from low to extreme - depends on the profiler settings and profiled application. For very low impact use the CPU Sampler.
jackshirazi
@jackshirazi
Is there any plan to get the instrumentation profiler working on remote JVMs?
Jiri Sedlacek
@jisedlac
@jackshirazi No concrete plans on this yet. Sampling profiler works fine for remote profiling and in case the instrumentation is needed, you can run VisualVM remotely and just forward it's UI to your machine (VNC, remote X). Does this work for your use case?
jackshirazi
@jackshirazi
No but it doesn't matter I have alternatives, it was more curiosity than an immediate need
Jiri Sedlacek
@jisedlac
@jackshirazi Feel free to file an Enhancement for VisualVM and describe your use case so we can consider changes on our side.
ryan
@ryanzl
hello
?
VisualVM for mac ,i cant't find Thread Detail Tab