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