Community
Participate
Working Groups
I200404071337 Making a CVS update in the background and a "close all" editors I had a lock-up of >20s with the following thread dump below. (Filing against Platform/UI because "main" is disposing the ViewerActionBuilder.) Full thread dump Java HotSpot(TM) Client VM (1.4.2-b28 mixed mode): "All Types Caching" prio=4 tid=0x049bbc88 nid=0x5d8 sleeping[5fbf000..5fbfd94] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:194) at java.io.BufferedInputStream.fill(BufferedInputStream.java:183) at java.io.BufferedInputStream.read(BufferedInputStream.java:201) - locked <0x1cd95930> (a java.io.BufferedInputStream) at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:352) at org.eclipse.jdt.internal.core.util.Util.readUTF(Util.java:1738) at org.eclipse.jdt.internal.core.index.DiskIndex.readCategoryTable(DiskI ndex.java:517) - locked <0x127cc298> (a org.eclipse.jdt.internal.core.index.DiskIndex) at org.eclipse.jdt.internal.core.index.DiskIndex.addQueryResults(DiskInd ex.java:150) at org.eclipse.jdt.internal.core.index.Index.query(Index.java:127) at org.eclipse.jdt.internal.core.search.matching.TypeDeclarationPattern. queryIn(TypeDeclarationPattern.java:188) at org.eclipse.jdt.internal.core.search.pattern.InternalSearchPattern.fi ndIndexMatches(InternalSearchPattern.java:47) at org.eclipse.jdt.internal.core.search.PatternSearchJob.search(PatternS earchJob.java:105) at org.eclipse.jdt.internal.core.search.PatternSearchJob.execute(Pattern SearchJob.java:62) at org.eclipse.jdt.internal.core.search.processing.JobManager.performCon currentJob(JobManager.java:261) at org.eclipse.jdt.core.search.SearchEngine.searchAllTypeNames(SearchEng ine.java:848) at org.eclipse.jdt.internal.corext.util.AllTypesCache.search(AllTypesCac he.java:496) at org.eclipse.jdt.internal.corext.util.AllTypesCache$TypeCacher.doSearc hTypes(AllTypesCache.java:180) at org.eclipse.jdt.internal.corext.util.AllTypesCache$TypeCacher.run(All TypesCache.java:149) "Worker-353" prio=5 tid=0x0415d008 nid=0xdd4 runnable [5fff000..5fffd94] at java.lang.Object.wait(Native Method) - waiting on <0x1cafa200> (a org.eclipse.ui.internal.Semaphore) at org.eclipse.ui.internal.Semaphore.acquire(Semaphore.java:37) - locked <0x1cafa200> (a org.eclipse.ui.internal.Semaphore) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:4 2) at org.eclipse.swt.widgets.Display.syncExec(Display.java:2911) at org.eclipse.ui.model.WorkbenchContentProvider.resourceChanged(Workben chContentProvider.java:107) at org.eclipse.core.internal.events.NotificationManager$2.run(Notificati onManager.java:255) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatfo rm.java:607) at org.eclipse.core.runtime.Platform.run(Platform.java:524) at org.eclipse.core.internal.events.NotificationManager.notify(Notificat ionManager.java:248) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges (NotificationManager.java:142) at org.eclipse.core.internal.resources.Workspace.broadcastChanges(Worksp ace.java:155) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace. java:854) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1568 ) at org.eclipse.core.internal.events.NotificationManager$NotifyJob.run(No tificationManager.java:37) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62) "Worker-352" prio=5 tid=0x044a1380 nid=0xca0 runnable [5bff000..5bffd94] at org.eclipse.core.runtime.jobs.Job.getPriority(Job.java:215) at org.eclipse.core.internal.jobs.JobManager.nextJob(JobManager.java:599 ) - locked <0x11739b28> (a java.lang.Object) at org.eclipse.core.internal.jobs.JobManager.startJob(JobManager.java:83 3) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:21 6) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-351" prio=5 tid=0x0435b668 nid=0xd78 runnable [5b7f000..5b7fd94] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:189) - locked <0x11739b48> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:21 5) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-350" prio=5 tid=0x04aca770 nid=0x810 in Object.wait() [5f0f000..5f0fd94] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:189) - locked <0x11739b48> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:21 5) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-349" prio=5 tid=0x04b43130 nid=0xbd0 in Object.wait() [5ecf000..5ecfd94] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:189) - locked <0x11739b48> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:21 5) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x0466c098 n id=0x144 runnable [603f000..603fd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x1bb48090> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "Worker-328" prio=5 tid=0x036608c8 nid=0xe34 in Object.wait() [5bbf000..5bbfd94] at java.lang.Object.wait(Native Method) - waiting on <0x1cafa350> (a org.eclipse.core.internal.jobs.Semaphore) at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:36) - locked <0x1cafa350> (a org.eclipse.core.internal.jobs.Semaphore) at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java :161) at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:9 9) at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:7 5) at org.eclipse.core.internal.resources.WorkManager.endUnprotected(WorkMa nager.java:140) at org.eclipse.core.internal.resources.Resource.delete(Resource.java:652 ) at org.eclipse.core.internal.resources.Resource.delete(Resource.java:684 ) at org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceUpdateOperation .deleteAndKeepHistory(WorkspaceUpdateOperation.java:91) at org.eclipse.team.internal.ccvs.ui.subscriber.WorkspaceUpdateOperation .runUpdateDeletions(WorkspaceUpdateOperation.java:47) at org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateOperation.safe Update(SafeUpdateOperation.java:217) at org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateOperation.run( SafeUpdateOperation.java:79) at org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberOperation$1 .run(CVSSubscriberOperation.java:57) at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run (EclipseSynchronizer.java:1403) at org.eclipse.team.internal.ccvs.ui.subscriber.CVSSubscriberOperation.r un(CVSSubscriberOperation.java:52) at org.eclipse.team.internal.ccvs.ui.subscriber.SafeUpdateOperation.run( SafeUpdateOperation.java:59) at org.eclipse.team.internal.ui.actions.JobRunnableContext.run(JobRunnab leContext.java:118) at org.eclipse.team.internal.ui.actions.JobRunnableContext$3.runInWorksp ace(JobRunnableContext.java:138) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(Internal WorkspaceJob.java:37) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04a65798 n id=0xbac runnable [5b1f000..5b1fd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x1b8880f8> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x044a1220 n id=0xa60 runnable [59bf000..59bfd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x1b3b8ac8> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "Java indexing" daemon prio=4 tid=0x03534c78 nid=0x3dc in Object.wait() [3c6f000 ..3c6fd94] at java.lang.Object.wait(Native Method) - waiting on <0x11bc7f48> (a org.eclipse.jdt.internal.core.search.indexi ng.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan ager.java:327) - locked <0x11bc7f48> (a org.eclipse.jdt.internal.core.search.indexing.I ndexManager) at java.lang.Thread.run(Thread.java:534) "Start Level Event Dispatcher" daemon prio=5 tid=0x032fc618 nid=0x758 in Object. wait() [33ef000..33efd94] at java.lang.Object.wait(Native Method) - waiting on <0x11340060> (a org.eclipse.osgi.framework.eventmgr.EventTh read) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThr ead.java:167) - locked <0x11340060> (a org.eclipse.osgi.framework.eventmgr.EventThread ) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java: 118) "Framework Event Dispatcher" daemon prio=5 tid=0x00a40008 nid=0xe0c in Object.wa it() [33af000..33afd94] at java.lang.Object.wait(Native Method) - waiting on <0x113402e8> (a org.eclipse.osgi.framework.eventmgr.EventTh read) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThr ead.java:167) - locked <0x113402e8> (a org.eclipse.osgi.framework.eventmgr.EventThread ) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java: 118) "Signal Dispatcher" daemon prio=10 tid=0x0003f938 nid=0xdbc waiting on condition [0..0] "RequestServer" daemon prio=5 tid=0x0003f6b8 nid=0xc38 runnable [306f000..306fd9 4] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x11340420> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at com.yourkit.runtime.RequestServer.if(a:231) at com.yourkit.runtime.RequestServer.access$000(a:224) at com.yourkit.runtime.RequestServer$1.run(a:3) "Finalizer" daemon prio=9 tid=0x009bfa20 nid=0x908 in Object.wait() [2c0f000..2c 0fd94] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x113404d0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x009be5f0 nid=0x20c runnable [2bcf000..2 bcfd94] at java.lang.Object.notifyAll(Native Method) at java.lang.ref.ReferenceQueue.enqueue(ReferenceQueue.java:49) - locked <0x113404d0> (a java.lang.ref.ReferenceQueue$Lock) - locked <0x1cd90a08> (a java.lang.ref.Finalizer) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:128) "main" prio=5 tid=0x00035c80 nid=0x760 waiting on condition [7e000..7fc3c] at org.eclipse.ui.internal.ViewerActionBuilder.dispose(ViewerActionBuild er.java:70) at org.eclipse.ui.internal.PopupMenuExtender.dispose(PopupMenuExtender.j ava:153) at org.eclipse.ui.internal.PartSite.dispose(PartSite.java:90) at org.eclipse.ui.internal.EditorManager.closeEditor(EditorManager.java: 162) at org.eclipse.ui.internal.WorkbenchPage.closeEditors(WorkbenchPage.java :852) at org.eclipse.ui.internal.WorkbenchPage.closeAllEditors(WorkbenchPage.j ava:799) at org.eclipse.ui.internal.CloseAllAction.run(CloseAllAction.java:74) at org.eclipse.jface.action.Action.runWithEvent(Action.java:881) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:73) at org.eclipse.ui.internal.commands.Command.execute(Command.java:172) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(Workben chKeyboard.java:465) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboar d.java:857) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(Workbe nchKeyboard.java:898) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindi ngs(WorkbenchKeyboard.java:524) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyb oard.java:490) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(Workbenc hKeyboard.java:261) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:705) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:768) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:793) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:778) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1720) at org.eclipse.swt.widgets.Control.sendKeyEvent(Control.java:1716) at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:3492) at org.eclipse.swt.widgets.Control.windowProc(Control.java:2971) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3155) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1451) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2263) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1561) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1532) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav a:257) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:140) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90 ) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformAct ivator.java:279) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:241) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:117) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:267) at org.eclipse.core.launcher.Main.run(Main.java:692) at org.eclipse.core.launcher.Main.main(Main.java:676) "VM Thread" prio=5 tid=0x009fb730 nid=0x97c runnable "VM Periodic Task Thread" prio=10 tid=0x00a3cc60 nid=0xaa4 waiting on condition "Suspend Checker Thread" prio=10 tid=0x009be0b0 nid=0xcc8 runnable
This happend three times in the last two days, but I'm not sure whether there was a similar pattern of actions I carried out. Everytime the memory consumption of java.exe in the Task Manager went up above 300MB. I'm running YourKit and have a memory snapshot from a lock-up (The snapshot file is around 112MB).
Tod, does this call stack look like someone (CVSSubscriberOperation) is waiting on a lock?
No - the problem is commands in the UI Thread. A search is running but in the background so I don't think this is anything to do with it. Christof is this common when closing? at org.eclipse.ui.internal.ViewerActionBuilder.dispose(ViewerActionBuild er.java:70) at org.eclipse.ui.internal.PopupMenuExtender.dispose (PopupMenuExtender.j ava:153) at org.eclipse.ui.internal.PartSite.dispose(PartSite.java:90) at org.eclipse.ui.internal.EditorManager.closeEditor (EditorManager.java: 162) at org.eclipse.ui.internal.WorkbenchPage.closeEditors (WorkbenchPage.java :852) at org.eclipse.ui.internal.WorkbenchPage.closeAllEditors (WorkbenchPage.j ava:799) at org.eclipse.ui.internal.CloseAllAction.run(CloseAllAction.java:74) at org.eclipse.jface.action.Action.runWithEvent(Action.java:881) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:73) at org.eclipse.ui.internal.commands.Command.execute(Command.java:172) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand (Workben chKeyboard.java:465) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press (WorkbenchKeyboar d.java:857) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent (Workbe nchKeyboard.java:898) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindi ngs(WorkbenchKeyboard.java:524) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2 (WorkbenchKeyb
No, I haven't found a pattern yet. The below thread dump is from a new lock-up during normal editing in the java editor. Again running I200404071337. Full thread dump Java HotSpot(TM) Client VM (1.4.2-b28 mixed mode): "Worker-65" prio=5 tid=0x04bdf528 nid=0xf30 waiting for monitor entry [48ff000.. 48ffd94] at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:21 9) - waiting to lock <0x11475dc8> (a org.eclipse.core.internal.jobs.WorkerP ool) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "Worker-64" prio=5 tid=0x04d13d50 nid=0x910 runnable [564f000..564fd94] at org.eclipse.core.internal.jobs.WorkerPool.remove(WorkerPool.java:169) at org.eclipse.core.internal.jobs.WorkerPool.endWorker(WorkerPool.java:1 31) - locked <0x11475dc8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:22 2) - locked <0x11475dc8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04d80488 n id=0xbfc runnable [568f000..568fd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x17c5b300> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "org.eclipse.jdt.debug: JDI Event Dispatcher" prio=5 tid=0x04c71400 nid=0x9f8 in Object.wait() [550f000..550fd94] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdi.internal.connect.PacketReceiveManager.waitForPacketAv ailable(PacketReceiveManager.java:168) at org.eclipse.jdi.internal.connect.PacketReceiveManager.getCommand(Pack etReceiveManager.java:93) - locked <0x17212fe8> (a org.eclipse.jdi.internal.connect.PacketReceiveM anager) at org.eclipse.jdi.internal.MirrorImpl.getCommandVM(MirrorImpl.java:276) at org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.j ava:63) at org.eclipse.jdi.internal.event.EventQueueImpl.remove(EventQueueImpl.j ava:48) at org.eclipse.jdt.internal.debug.core.EventDispatcher.run(EventDispatch er.java:213) at java.lang.Thread.run(Thread.java:534) "Packet Send Manager" prio=5 tid=0x04d30eb0 nid=0x630 in Object.wait() [560f000. .560fd94] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdi.internal.connect.PacketSendManager.sendAvailablePacke ts(PacketSendManager.java:94) - locked <0x17213130> (a org.eclipse.jdi.internal.connect.PacketSendMana ger) at org.eclipse.jdi.internal.connect.PacketSendManager.run(PacketSendMana ger.java:54) at java.lang.Thread.run(Thread.java:534) "Packet Receive Manager" prio=5 tid=0x04d820a8 nid=0x8e8 runnable [55cf000..55cf d94] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.net.SocketInputStream.read(SocketInputStream.java:182) at java.io.DataInputStream.readInt(DataInputStream.java:443) at org.eclipse.jdi.internal.jdwp.JdwpPacket.read(JdwpPacket.java:124) at org.eclipse.jdi.internal.connect.PacketReceiveManager.readAvailablePa cket(PacketReceiveManager.java:224) at org.eclipse.jdi.internal.connect.PacketReceiveManager.run(PacketRecei veManager.java:70) at java.lang.Thread.run(Thread.java:534) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04c712a0 n id=0xfa4 runnable [558f000..558fd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x171c3f10> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "Console Polling Thread" prio=7 tid=0x03a5e008 nid=0x3ec waiting on condition [5 4cf000..54cfd94] at java.lang.Thread.sleep(Native Method) at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitione r.pollAndSleep(ConsoleDocumentPartitioner.java:563) at org.eclipse.debug.internal.ui.views.console.ConsoleDocumentPartitione r$1.run(ConsoleDocumentPartitioner.java:547) at java.lang.Thread.run(Thread.java:534) "Input Stream Monitor" prio=5 tid=0x04d81748 nid=0xe18 in Object.wait() [544f000 ..544fd94] at java.lang.Object.wait(Native Method) - waiting on <0x171c4018> (a java.lang.Object) at java.lang.Object.wait(Object.java:429) at org.eclipse.debug.internal.core.InputStreamMonitor.writeNext(InputStr eamMonitor.java:124) - locked <0x171c4018> (a java.lang.Object) at org.eclipse.debug.internal.core.InputStreamMonitor.write(InputStreamM onitor.java:99) at org.eclipse.debug.internal.core.InputStreamMonitor$1.run(InputStreamM onitor.java:75) at java.lang.Thread.run(Thread.java:534) "Output Stream Monitor" prio=5 tid=0x04d80de8 nid=0xe58 runnable [52ef000..52efd 94] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:177) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStream Monitor.java:132) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputSt reamMonitor.java:124) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStrea mMonitor.java:177) at java.lang.Thread.run(Thread.java:534) "Output Stream Monitor" prio=5 tid=0x03ad0620 nid=0xf50 runnable [49ff000..49ffd 94] at java.io.FileInputStream.readBytes(Native Method) at java.io.FileInputStream.read(FileInputStream.java:194) at java.io.BufferedInputStream.read1(BufferedInputStream.java:220) at java.io.BufferedInputStream.read(BufferedInputStream.java:277) - locked <0x171c8168> (a java.io.BufferedInputStream) at java.io.FilterInputStream.read(FilterInputStream.java:90) at org.eclipse.debug.internal.core.OutputStreamMonitor.read(OutputStream Monitor.java:132) at org.eclipse.debug.internal.core.OutputStreamMonitor.access$1(OutputSt reamMonitor.java:124) at org.eclipse.debug.internal.core.OutputStreamMonitor$1.run(OutputStrea mMonitor.java:177) at java.lang.Thread.run(Thread.java:534) "Worker-46" prio=5 tid=0x04a57388 nid=0xec0 runnable [526f000..526fd94] at java.lang.Win32Process.waitFor(Native Method) at org.eclipse.debug.core.model.RuntimeProcess$ProcessMonitorJob.run(Run timeProcess.java:350) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:62) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04d09928 n id=0xc08 runnable [49bf000..49bfd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x1607a488> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x04b85920 n id=0x7a4 runnable [493f000..493fd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x15e53ac8> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x03873b00 n id=0x9dc runnable [487f000..487fd94] at java.lang.Object.clone(Native Method) at java.text.BreakIterator.clone(BreakIterator.java:230) at java.text.RuleBasedBreakIterator.clone(RuleBasedBreakIterator.java:29 8) at java.text.BreakIterator$BreakIteratorCache.createBreakInstance(BreakI terator.java:570) at java.text.BreakIterator.getBreakInstance(BreakIterator.java:491) at java.text.BreakIterator.getWordInstance(BreakIterator.java:391) at org.eclipse.jdt.internal.ui.text.spelling.SpellCheckIterator.<init>(S pellCheckIterator.java:82) at org.eclipse.jdt.internal.ui.text.spelling.SpellReconcileStrategy.reco ncile(SpellReconcileStrategy.java:346) at org.eclipse.jface.text.reconciler.CompositeReconcilingStrategy.reconc ile(CompositeReconcilingStrategy.java:83) at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.rec oncile(JavaCompositeReconcilingStrategy.java:97) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconcil er.java:76) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:189) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x037f36f8 n id=0x944 runnable [46af000..46afd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x154305c8> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "org.eclipse.jdt.internal.ui.text.JavaReconciler" daemon prio=2 tid=0x038ef7f0 n id=0xbc8 runnable [497f000..497fd94] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread .run(AbstractReconciler.java:161) - locked <0x153dbf18> (a org.eclipse.jface.text.reconciler.DirtyRegionQu eue) "Java indexing" daemon prio=4 tid=0x032a8538 nid=0x840 in Object.wait() [3bdf000 ..3bdfd94] at java.lang.Object.wait(Native Method) - waiting on <0x118d2518> (a org.eclipse.jdt.internal.core.search.indexi ng.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan ager.java:327) - locked <0x118d2518> (a org.eclipse.jdt.internal.core.search.indexing.I ndexManager) at java.lang.Thread.run(Thread.java:534) "Start Level Event Dispatcher" daemon prio=5 tid=0x032d5008 nid=0x90 in Object.w ait() [33ef000..33efd94] at java.lang.Object.wait(Native Method) - waiting on <0x1135c8e0> (a org.eclipse.osgi.framework.eventmgr.EventTh read) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThr ead.java:167) - locked <0x1135c8e0> (a org.eclipse.osgi.framework.eventmgr.EventThread ) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java: 118) "Framework Event Dispatcher" daemon prio=5 tid=0x03303008 nid=0x3cc in Object.wa it() [33af000..33afd94] at java.lang.Object.wait(Native Method) - waiting on <0x1135cb10> (a org.eclipse.osgi.framework.eventmgr.EventTh read) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThr ead.java:167) - locked <0x1135cb10> (a org.eclipse.osgi.framework.eventmgr.EventThread ) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java: 118) "Signal Dispatcher" daemon prio=10 tid=0x0003f938 nid=0x93c waiting on condition [0..0] "RequestServer" daemon prio=5 tid=0x0003f6b8 nid=0xf38 runnable [306f000..306fd9 4] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x1135cc70> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at com.yourkit.runtime.RequestServer.if(a:231) at com.yourkit.runtime.RequestServer.access$000(a:224) at com.yourkit.runtime.RequestServer$1.run(a:3) "Finalizer" daemon prio=9 tid=0x009bfa20 nid=0x954 runnable [2c0f000..2c0fd94] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x1135cd88> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x009be5f0 nid=0xf08 in Object.wait() [2b cf000..2bcfd94] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x1135c930> (a java.lang.ref.Reference$Lock) "main" prio=5 tid=0x00035c80 nid=0x5fc runnable [7f000..7fc3c] at org.eclipse.swt.internal.win32.OS.PeekMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:1839) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2259) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1561) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1532) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.jav a:257) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:140) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:90 ) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformAct ivator.java:279) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:241) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.ja va:117) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:267) at org.eclipse.core.launcher.Main.run(Main.java:692) at org.eclipse.core.launcher.Main.main(Main.java:676) "VM Thread" prio=5 tid=0x009fb730 nid=0xc44 runnable "VM Periodic Task Thread" prio=10 tid=0x00a3cbf8 nid=0xe24 waiting on condition "Suspend Checker Thread" prio=10 tid=0x009be0b0 nid=0x90c runnable
This trace has nothing to do with the keybindings - in fact the UI is just read and dispatching right now. What would be really useful is two traces for the same lock incident a second or so apart - then we can compare and see what is in both.
Tod: all commands run on the UI thread. This is expected behaviour, and is the same as for the old actions mechanism. You might try looking elsewhere....
Right but there may still be performance issues no matter what Thread it is on.
Created attachment 9528 [details] Multiple thread dumps of same lockup. Note that the thread dumps were printed on the console only when eclipse became responsive again. From looking at the main thread it could be the case that my ctrl-breaks did not make a dump immediately. (?)
Christof and Doug - are you guys still seeing this in build 20040427 or later? There was an InvalidThreadAccess that was grinding down for a while but this seems to be OK now.
Closing.