Bug 58424 - [Keybindings] Lock-up of several seconds
Summary: [Keybindings] Lock-up of several seconds
Status: RESOLVED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P2 normal (vote)
Target Milestone: ---   Edit
Assignee: Tod Creasey CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2004-04-14 03:43 EDT by Christof Marti CLA
Modified: 2004-05-04 08:11 EDT (History)
2 users (show)

See Also:


Attachments
Multiple thread dumps of same lockup. (90.55 KB, text/plain)
2004-04-15 06:00 EDT, Christof Marti CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christof Marti CLA 2004-04-14 03:43:45 EDT
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
Comment 1 Christof Marti CLA 2004-04-14 04:00:30 EDT
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).
Comment 2 Debbie Wilson CLA 2004-04-14 11:09:59 EDT
Tod, does this call stack look like someone (CVSSubscriberOperation) is 
waiting on a lock?
Comment 3 Tod Creasey CLA 2004-04-14 11:24:33 EDT
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
Comment 4 Christof Marti CLA 2004-04-14 11:28:44 EDT
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
Comment 5 Tod Creasey CLA 2004-04-14 11:41:26 EDT
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.
Comment 6 Douglas Pollock CLA 2004-04-14 13:37:53 EDT
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.... 
Comment 7 Tod Creasey CLA 2004-04-14 13:53:07 EDT
Right but there may still be performance issues no matter what Thread it is on.
Comment 8 Christof Marti CLA 2004-04-15 06:00:07 EDT
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. (?)
Comment 9 Tod Creasey CLA 2004-04-27 14:31:07 EDT
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.
Comment 10 Tod Creasey CLA 2004-05-04 08:11:42 EDT
Closing.