2012-05-08 9 views
31

Sto provando a connettere jvisualvm installato con jdk1.7.0_04 a un processo java in esecuzione localmente. Quando faccio questo, jvisualvm mostra una barra di avanzamento in basso a sinistra che indica la sua connessione al processo, e quindi non risponde mai più.Java VisualVM si blocca connettendosi al processo locale lanciato da eclissi

Il processo java a cui sto cercando di connettersi è ancora valido e funziona normalmente.

Posso ottenere un threaddump di visualvm utilizzando jstack, che mostra 1 thread bloccato.

AWT-EventQueue-0" prio=6 tid=0x04a1a000 nid=0x1110 waiting for monitor entry [0x062af000] 
    java.lang.Thread.State: BLOCKED (on object monitor) 
     at com.sun.tools.visualvm.core.model.ModelFactory.getModel(ModelFactory.java:76) 
     - waiting to lock <0x289584f0> (a com.sun.tools.visualvm.jvmstat.application.JvmstatApplication) 
     at com.sun.tools.visualvm.core.datasource.descriptor.DataSourceDescriptorFactory.getDescriptor(DataSourceDescriptorFactory.java:49) 

Non riesco a connettermi a nessun processo java, anche a uno banale che attende solo l'input dell'utente. Ho anche avuto lo stesso problema con jdk1.6.0_32.

- Aggiornamenti Da allora ho scoperto che questo riguarda solo i processi java che avvio da eclipse. È possibile ottenere il comando eclipse lanciato dalla prospettiva di debug e aprendo le proprietà del processo. Avviare lo stesso processo dal prompt dei comandi (utilizzando il comando che ho copiato da eclipse) consente le connessioni da jvisualvm e jconsole.

completa discarica discussione:

2012-05-10 13:18:47 
Full thread dump Java HotSpot(TM) Client VM (23.0-b21 mixed mode, sharing): 

"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]" daemon prio=2 tid=0x00e12800 nid=0xa5c in Object.wait() [0x0587f000] 
java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x22d6a578> (a java.lang.Object) 
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1880) 
    - locked <0x22d6a578> (a java.lang.Object) 

Locked ownable synchronizers: 
    - None 

"pool-4-thread-1" prio=6 tid=0x063ddc00 nid=0x1a70 waiting on condition [0x0750f000] 
java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x23440068> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) 
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"pool-3-thread-1" prio=6 tid=0x00fe7400 nid=0x16a0 waiting on condition [0x05a7f000] 
java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x28a7ccd8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) 
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"Timer-1" daemon prio=2 tid=0x04c63800 nid=0x1f00 in Object.wait() [0x07f1f000] 
java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x289e6688> (a java.util.TaskQueue) 
    at java.util.TimerThread.mainLoop(Timer.java:552) 
    - locked <0x289e6688> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Timer.java:505) 

Locked ownable synchronizers: 
    - None 

"TimerQueue" daemon prio=6 tid=0x04b82c00 nid=0x124 waiting on condition [0x070df000] 
java.lang.Thread.State: TIMED_WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x285f8b20> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082) 
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:220) 
    at javax.swing.TimerQueue.run(TimerQueue.java:171) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - <0x2862c110> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) 

"Thread-3" daemon prio=6 tid=0x04b7b400 nid=0x1c18 in Object.wait() [0x06edf000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28562950> (a java.util.LinkedList) 
    at java.lang.Object.wait(Object.java:503) 
    at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1476) 
    - locked <0x28562950> (a java.util.LinkedList) 

Locked ownable synchronizers: 
    - None 

"DataSourceWindowManager Processor" daemon prio=2 tid=0x04b28c00 nid=0x11e0 runnable [0x06cdf000] 
java.lang.Thread.State: RUNNABLE 
    at sun.tools.attach.WindowsVirtualMachine.connectPipe(Native Method) 
    at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:100) 
    at sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:58) 
    at sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:79) 
    at sun.tools.attach.HotSpotVirtualMachine.loadAgent(HotSpotVirtualMachine.java:103) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine.loadManagementAgent(JmxModelImpl.java:676) 
    - locked <0x23440218> (a com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine.startManagementAgent(JmxModelImpl.java:633) 
    - locked <0x23440218> (a com.sun.tools.visualvm.jmx.impl.JmxModelImpl$LocalVirtualMachine) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$ProxyClient.tryConnect(JmxModelImpl.java:450) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl$ProxyClient.connect(JmxModelImpl.java:420) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl.connect(JmxModelImpl.java:200) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelImpl.<init>(JmxModelImpl.java:170) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelProvider.createModelFor(JmxModelProvider.java:45) 
    at com.sun.tools.visualvm.jmx.impl.JmxModelProvider.createModelFor(JmxModelProvider.java:22) 
    at com.sun.tools.visualvm.core.model.ModelFactory.getModel(ModelFactory.java:91) 
    - locked <0x289f8fe0> (a com.sun.tools.visualvm.jvmstat.application.JvmstatApplication) 
    at com.sun.tools.visualvm.tools.jmx.JmxModelFactory.getJmxModelFor(JmxModelFactory.java:49) 
    at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.resolveThreads(ApplicationThreadsViewProvider.java:63) 
    at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.supportsViewFor(ApplicationThreadsViewProvider.java:29) 
    at com.sun.tools.visualvm.application.views.threads.ApplicationThreadsViewProvider.supportsViewFor(ApplicationThreadsViewProvider.java:25) 
    at com.sun.tools.visualvm.core.ui.DataSourceViewsManager.getViews(DataSourceViewsManager.java:116) 
    at com.sun.tools.visualvm.core.ui.DataSourceWindowManager.openWindowAndAddView(DataSourceWindowManager.java:169) 
    at com.sun.tools.visualvm.core.ui.DataSourceWindowManager.access$000(DataSourceWindowManager.java:30) 
    at com.sun.tools.visualvm.core.ui.DataSourceWindowManager$1.run(DataSourceWindowManager.java:80) 
    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1385) 
    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1929) 

Locked ownable synchronizers: 
    - None 

"AWT-EventQueue-0" prio=6 tid=0x049fa000 nid=0x1b90 waiting on condition [0x062af000] 
java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x28310488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) 
    at java.awt.EventQueue.getNextEvent(EventQueue.java:511) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:213) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97) 

Locked ownable synchronizers: 
    - None 

"AWT-Windows" daemon prio=6 tid=0x049cc000 nid=0x12b0 runnable [0x0608f000] 
java.lang.Thread.State: RUNNABLE 
    at sun.awt.windows.WToolkit.eventLoop(Native Method) 
    at sun.awt.windows.WToolkit.run(WToolkit.java:299) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"AWT-Shutdown" prio=6 tid=0x049cb400 nid=0x1954 in Object.wait() [0x05e8f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28430620> (a java.lang.Object) 
    at java.lang.Object.wait(Object.java:503) 
    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287) 
    - locked <0x28430620> (a java.lang.Object) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"Java2D Disposer" daemon prio=10 tid=0x010a4000 nid=0x1dd4 in Object.wait() [0x05c8f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378258> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
    - locked <0x28378258> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) 
    at sun.java2d.Disposer.run(Disposer.java:145) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"CLI Requests Server" daemon prio=6 tid=0x01058000 nid=0x1a58 runnable [0x0567f000] 
java.lang.Thread.State: RUNNABLE 
    at java.net.TwoStacksPlainSocketImpl.socketAccept(Native Method) 
    at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398) 
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:183) 
    - locked <0x28378700> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(ServerSocket.java:522) 
    at java.net.ServerSocket.accept(ServerSocket.java:490) 
    at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1042) 

Locked ownable synchronizers: 
    - None 

"Active Reference Queue Daemon" daemon prio=2 tid=0x01028c00 nid=0x17b4 in Object.wait() [0x049af000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378878> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
    - locked <0x28378878> (a java.lang.ref.ReferenceQueue$Lock) 
    at org.openide.util.lookup.implspi.ActiveQueue$Impl.run(ActiveQueue.java:64) 
    at java.lang.Thread.run(Thread.java:722) 

Locked ownable synchronizers: 
    - None 

"Timer-0" daemon prio=6 tid=0x01015400 nid=0x1ce8 in Object.wait() [0x047af000] 
java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378910> (a java.util.TaskQueue) 
    at java.util.TimerThread.mainLoop(Timer.java:552) 
    - locked <0x28378910> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Timer.java:505) 

Locked ownable synchronizers: 
    - None 

"Service Thread" daemon prio=6 tid=0x00e7b400 nid=0x4a8 runnable [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"C1 CompilerThread0" daemon prio=10 tid=0x00e76000 nid=0x13e0 waiting on condition [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"Attach Listener" daemon prio=10 tid=0x00e74400 nid=0x448 waiting on condition [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"Signal Dispatcher" daemon prio=10 tid=0x00e73000 nid=0x1eb4 runnable [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"Finalizer" daemon prio=8 tid=0x00e60400 nid=0x1f28 in Object.wait() [0x03b1f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x28378b58> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135) 
    - locked <0x28378b58> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151) 
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177) 

Locked ownable synchronizers: 
    - None 

"Reference Handler" daemon prio=10 tid=0x00e5ec00 nid=0x1d40 in Object.wait() [0x0391f000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x283782e8> (a java.lang.ref.Reference$Lock) 
    at java.lang.Object.wait(Object.java:503) 
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133) 
    - locked <0x283782e8> (a java.lang.ref.Reference$Lock) 

Locked ownable synchronizers: 
    - None 

"main" prio=6 tid=0x00db8000 nid=0x12f0 waiting on condition [0x00000000] 
java.lang.Thread.State: RUNNABLE 

Locked ownable synchronizers: 
    - None 

"VM Thread" prio=10 tid=0x00e5d000 nid=0xbf8 runnable 

"VM Periodic Task Thread" prio=10 tid=0x00e7e800 nid=0x1fcc waiting on condition 

JNI global references: 656 
+0

Do 'jconsole' e' jmap' funzionano? – artbristol

+0

@artbristol - jmap funziona bene e posso ottenere un dump di heap binario. jconsole inoltre non può stabilire una connessione. Il dispositivo di scorrimento "Connessione a " rimbalza avanti e indietro per sempre. Notare che se ho tentato di connettere jconsole o jvisualvm prima al processo, jmap non riesce a connettersi. – lukestevo

+0

Si prega di inviare l'intero dump di thread di VisualVM, non solo AWT-EventQueue. –

risposta

20

Abilita le configurazioni di rete.

Ho sperimentato lo stesso problema. Può funzionare quando imposto la configurazione di rete con "Nessun proxy". Menu principale: tools/options/network/no proxy.

+1

Il problema si è risolto da solo, non sono sicuro del perché. Mi stavo connettendo a processi in esecuzione localmente, quindi non avrei pensato che le impostazioni del proxy avrebbero avuto alcun impatto. – lukestevo

+3

grazie per il suggerimento. Mi ci è voluto un bel po 'per inchiodare a questo stupido numero del proxy ... – insitu

1

A volte Skype si trova su porte strane ... Ciò mi ha causato grossi grattacapi in almeno due occasioni, quando ha scelto 8080, e ho pensato che il mio Tomcat fosse danneggiato. Si è scoperto (dopo circa un'ora di essere totalmente all'oscuro e ignaro), che Skype stava usando quella porta ...

Anche una domanda: hai iniziato il tuo programma in modalità 'Esegui' o 'Debug' da Eclipse ?

5

Ho riscontrato lo stesso problema e sono dietro un proxy. La selezione di "Nessun proxy" o "Impostazioni proxy manuali" risolve il problema.

Una cosa semplice, e ho sprecato un paio di ore su questo ...

+0

Uomo, era proprio così! Questo funziona davvero! –

5

Nel mio caso la soluzione era quella di utilizzare 32bit JSDK.
Per diagnosticare jvisualvm partenza con param --trace ..

mio log conteneva:
Cannot load C:\Program Files\Java\jdk1.7.0_45\jre\bin\server\jvm.dll. %1 is not a valid Win32 application. (193) Falling back to running Java in a separate process; DLL cannot be loaded (64-bit DLL?).

+1

Oh come on Oracle .. – Odys

0

aggiungere l'argomento follwing in runConfigurations eclissi scheda Potenziati

-XX: + StartAttachListener

questo permetterà a visualVM di connettersi istantaneamente e il campionamento e il profiling funzioneranno.

10

tenta di aggiungere i seguenti argomenti VM ai tuoi "Run configurazioni":

-Djava.rmi.server.hostname=localhost 

Run configuration

15

Trovato questo su una mailing list VisualVM: https://java.net/projects/visualvm/lists/users/archive/2016-06/message/7

aggiunte questo:

-J-Dorg.netbeans.profiler.separateConsole=true 

al mio collegamento jvisualvm.exe un d funziona!

+1

Aveva lo stesso problema di [Konstantin] (http://stackoverflow.com/a/26183213/245495) e questo lo ha risolto. Grazie – Odys

+0

Risolve il mio problema. – CDT

+0

** Questo è quello che funziona davvero **, ragazzi! – ForNeVeR

Problemi correlati