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
White Rabbit
@umes4ever
@jisedlac thanks and also how much accuracy difference is there between profiling and sampling?
Jiri Sedlacek
@jisedlac
@umes4ever Exact answer probably won't fit here, but there's a lot of information on this topic available - just search for "Instrumentation vs. Sampling". In general sampling does a great job for detecting bottlenecks, instrumentation works better for getting exact invocation counts and/or analyzing specific code fragments.
sylen1
@sylen1
Hello. I'm trying to use VisualVM with application running jvm10 and the Profiler tab is gone. Is there something I can do to bring it back? besides going back to jvm9 or 8
Jiri Sedlacek
@jisedlac
@sylen1 If you need to profile a Java 10 process, either use the Sampler or wait for an upcoming VisualVM update which will add the Java 10 support.
Jan Monterrubio
@AnEmortalKid
howdy! do you happen to have any contributor guides on how to get this all working and running? (I can get it to run, but I'm having trouble trying to debug through my issue. There's no source jars in the embedded netbeans platform zip)
Tomas Hurka
@thurka
@AnEmortalKid The problem is that your issue is a bug in NetBeans and not in VisualVM.
@AnEmortalKid NetBeans sources are part of the VisualVM release. See VisualVM 1.4 release and look for netbeans-profiler-visualvm_release90dev.tar.gz.
Jan Monterrubio
@AnEmortalKid
Yeah, i think the issue is in the Heap Walker stuff. Oh by 'my stack traces', I meant that the Threads tab has no expandable rows on the stack trace. I'll see if i can grab a screenshot today.
Luberen
@Luberen
Please add dark theme to VisualVM. It's a little hard to see a white background for a long time
Jiri Sedlacek
@jisedlac
@Luberen VisualVM follows the OS theme. If you switch your OS to dark theme you'll get dark background in VisualVM, too.
Luberen
@Luberen
@jisedlac That's sad. It is impossible in Windows.
Jiri Sedlacek
@jisedlac
@Luberen Which Windows version?
Luberen
@Luberen
@jisedlac I'm using Windows 10
Jiri Sedlacek
@jisedlac
OK, I see. You can try out the NetBeans "Darcula" theme at http://plugins.netbeans.org/plugin/62424/darcula-laf-for-netbeans - far from perfect (not designed for VisualVM), but it makes the VisualVM darker.
Luberen
@Luberen
Which folder do I have to put the theme?
Jiri Sedlacek
@jisedlac
It's a NetBeans plugin - just download the .nbm file and go 'Tools | Plugins | Downloaded -> Add Plugins... -> Install' in VisualVM.
jimbo1qaz
@jimbo1qaz
I'm getting an exception when I try to open a Java app (built from IDEA). https://hastebin.com/raw/gawujoqeyu
jimbo1qaz
@jimbo1qaz
Nvm oracle/visualvm#34 using java 9 fixed it
Jeff Linahan
@jeffythedragonslayer
Think I found a bug in Java VisualVM
Trying to add custom jstatd connections, any port number I type in it puts a decimal point in the port number
port number should stay unsigned int
Jeff Linahan
@jeffythedragonslayer
Version 1.8.0_121 (build 140910)
Jiri Sedlacek
@jisedlac
It's not a decimal point, it's just a formatted number according to your locale (see java.text.NumberFormat).
Jiri Sedlacek
@jisedlac
You can easily override the system locale when starting VisualVM, for example 'jvisualvm --locale en:US'
Jaymer
@TheJaymer_twitter
can get VisVM to start on Wind 2012R2. Got the License Agreement dialog. See startup logo. Then all goes away.
--userdir "C:\Temp\visualvm_userdir". The created file structure is there. Looks normal.
Log file ends with:
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy - mode: direct
INFO [org.netbeans.core.network.proxy.NetworkProxyReloader]: System network proxy: fell to default (correct if direct mode went before)
after modules are loaded.
Tomas Hurka
@thurka
It will be nice to see complete messages.log file. However if there is nothing suspicious at the end of the log file, this looks like a JVM crash. Do you see JVM crash file hs_err_pidXYZ.log somewhere on your disk?