Community
Participate
Working Groups
I got this hang when I hit Ctrl-Shift-T. Build: eclipse-I200411230838 GTK-Path: /devel/gtk+-2.4.13 Full thread dump Java HotSpot(TM) Client VM (1.4.2_03-b02 mixed mode): "ModalContext" prio=1 tid=0x08e74570 nid=0xef5 in Object.wait() [5bc5a000..5bc5a854] at java.lang.Object.wait(Native Method) - waiting on <0x4673a550> (a java.lang.Object) at org.eclipse.jdt.internal.corext.util.AllTypesCache.getAllTypes(AllTypesCache.java:311) - locked <0x4673a550> (a java.lang.Object) at org.eclipse.jdt.internal.corext.util.AllTypesCache.getTypes(AllTypesCache.java:243) at org.eclipse.jdt.internal.ui.dialogs.TypeSelectionDialog$1.run(TypeSelectionDialog.java:189) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:105) "org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=1 tid=0x0909d6a0 nid=0xef5 in Object.wait() [5bddd000..5bddd854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x4e9ed980> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=1 tid=0x08dab870 nid=0xef5 in Object.wait() [5bbd9000..5bbd9854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x4e9ed9e0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=1 tid=0x089b9a08 nid=0xef5 in Object.wait() [5bd5c000..5bd5c854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x4e9eda40> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=1 tid=0x08d11440 nid=0xef5 in Object.wait() [5babd000..5babd854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x4e9edaa0> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=1 tid=0x091958f0 nid=0xef5 in Object.wait() [5b51f000..5b51f854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x4e9edb00> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "org.eclipse.jface.text.reconciler.MonoReconciler" daemon prio=1 tid=0x08ae7948 nid=0xef5 in Object.wait() [5d280000..5d280854] at java.lang.Object.wait(Native Method) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:176) - locked <0x4e9edb60> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue) "All Types Caching" prio=1 tid=0x08fd38f8 nid=0xef5 sleeping[5bb58000..5bb58854] at java.lang.Thread.sleep(Native Method) at org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(JobManager.java:244) at org.eclipse.jdt.internal.core.search.SearchBasicEngine.searchAllTypeNames(SearchBasicEngine.java:509) at org.eclipse.jdt.core.search.SearchEngine.searchAllTypeNames(SearchEngine.java:571) at org.eclipse.jdt.internal.corext.util.AllTypesCache.search(AllTypesCache.java:550) at org.eclipse.jdt.internal.corext.util.AllTypesCache$TypeCacher.doSearchTypes(AllTypesCache.java:197) at org.eclipse.jdt.internal.corext.util.AllTypesCache$TypeCacher.run(AllTypesCache.java:159) "Worker-29" prio=1 tid=0x089cce20 nid=0xef5 in Object.wait() [58f44000..58f44854] at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:168) - locked <0x45de57f8> (a org.eclipse.core.internal.jobs.WorkerPool) at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:195) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:59) "Indexer TimeOut Thread" daemon prio=1 tid=0x085e3dd0 nid=0xef5 in Object.wait() [5afaf000..5afaf854] at java.lang.Object.wait(Native Method) - waiting on <0x4682ddc8> (a org.eclipse.cdt.core.parser.ParserTimeOut) at java.lang.Object.wait(Object.java:429) at org.eclipse.cdt.core.parser.ParserTimeOut.run(ParserTimeOut.java:56) - locked <0x4682ddc8> (a org.eclipse.cdt.core.parser.ParserTimeOut) at java.lang.Thread.run(Thread.java:534) "C/C++ Indexer" daemon prio=1 tid=0x085e6968 nid=0xef5 sleeping[5af2e000..5af2e854] at java.lang.Thread.sleep(Native Method) at org.eclipse.cdt.internal.core.search.processing.JobManager.run(JobManager.java:460) at java.lang.Thread.run(Thread.java:534) "Java indexing" daemon prio=1 tid=0x08530f98 nid=0xef5 in Object.wait() [5aa76000..5aa76854] at java.lang.Object.wait(Native Method) - waiting on <0x466cf5d0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Object.wait(Object.java:429) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:345) - locked <0x466cf5d0> (a org.eclipse.jdt.internal.core.search.indexing.IndexManager) at java.lang.Thread.run(Thread.java:534) "Reference Cleaner: 1" prio=1 tid=0x08102f30 nid=0xef5 in Object.wait() [591f9000..591f9854] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x4667ad08> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at org.eclipse.jface.resource.ImageCache$ReferenceCleanerThread.run(ImageCache.java:427) "Start Level Event Dispatcher" daemon prio=1 tid=0x0823ef00 nid=0xef5 in Object.wait() [590d5000..590d5854] at java.lang.Object.wait(Native Method) - waiting on <0x45b87bd0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x45b87bd0> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Framework Event Dispatcher" daemon prio=1 tid=0x082519f8 nid=0xef5 in Object.wait() [59054000..59054854] at java.lang.Object.wait(Native Method) - waiting on <0x45b77c88> (a org.eclipse.osgi.framework.eventmgr.EventThread) at java.lang.Object.wait(Object.java:429) at org.eclipse.osgi.framework.eventmgr.EventThread.getNextEvent(EventThread.java:162) - locked <0x45b77c88> (a org.eclipse.osgi.framework.eventmgr.EventThread) at org.eclipse.osgi.framework.eventmgr.EventThread.run(EventThread.java:100) "Signal Dispatcher" daemon prio=1 tid=0x0809d7a8 nid=0xef5 waiting on condition [0..0] "Finalizer" daemon prio=1 tid=0x08088950 nid=0xef5 in Object.wait() [589da000..589da854] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x45afaa88> (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=1 tid=0x08087d60 nid=0xef5 in Object.wait() [58959000..58959854] 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 <0x45afaaf0> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x08052570 nid=0xef5 runnable [bfffa000..bfffc168] at org.eclipse.swt.internal.gtk.OS.Call(Native Method) at org.eclipse.swt.widgets.Display.sleep(Display.java:2977) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:142) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:279) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:447) at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:263) at org.eclipse.ui.internal.progress.ProgressManager$3.run(ProgressManager.java:840) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:874) at org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:850) at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1042) at org.eclipse.jdt.internal.ui.dialogs.TypeSelectionDialog.open(TypeSelectionDialog.java:195) at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.run(OpenTypeAction.java:68) at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.run(OpenTypeAction.java:89) at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:298) at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:221) at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:188) at org.eclipse.ui.internal.commands.Command.execute(Command.java:130) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:445) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:724) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:767) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:536) at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$2(WorkbenchKeyboard.java:479) at org.eclipse.ui.internal.keys.WorkbenchKeyboard$1.handleEvent(WorkbenchKeyboard.java:221) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1060) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:990) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1015) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1000) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1027) at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:595) at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:1870) at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:522) at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1327) at org.eclipse.swt.widgets.Display.windowProc(Display.java:3213) at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method) at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:4604) at org.eclipse.swt.widgets.Display.eventProc(Display.java:903) at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method) at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2367) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1579) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1550) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:282) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:220) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:710) at org.eclipse.core.launcher.Main.main(Main.java:694) "VM Thread" prio=1 tid=0x08086a40 nid=0xef5 runnable "VM Periodic Task Thread" prio=1 tid=0x0809ffb8 nid=0xef5 waiting on condition "Suspend Checker Thread" prio=1 tid=0x0809ce08 nid=0xef5 runnable
I've seen this hang as well. GTK+ 2.2.1. Are you sure about the Eclipse version? And have you talked to Silenio about this?
I'm sure of the GTK+ version. Note that the UI was not blocked and was able to respond to expose and resize events, so I do not think this is an SWT problem.
Do you remember having cancelled the OpenType dialog opening prior to hanging ?
No, I don't recall having done that.
I cannot reproduce using GTK+2.2.1 and last integration build I200411240800.
Billy, have you seen this hang recently ? If you have, do you have anything related to indexing in your .log file ?
I am able to reproduce this one. Make sure you start up Eclipse with a *closed* Java project. After startup, open the project and then Open Type. The progress dialog will be there forever. The Cancel button is active though. Before the Open Type works again, I have to rebuild the project and restart Eclipse. Ringo
Forgot to mention: Eclipse 3.1M3 on Windows 2000 with JDK 1.4.2_05. I am still running M3 since post-M3 builds annoy me due to Bug 73969. Ringo
Has the JDT Core team managed to reproduce the problem using the steps given by Ringo? Note: If it is taking a long time to open, then it's a performance problem. If it *hangs* (i.e. never opens) then it's a bug whose priority should probably be raised.
I doubt we can reproduce this PR using HEAD since the AllTypesCache was removed last week.
Time spent in scenario described by Ringo is to index files of the reopened project(s). Here are times noticed on an Eclipse 3.1 full source workspace (86 projects): 1) Close all projects: ~45s 2) Open all projects: ~7 s 3) Index all files (~10600): ~30s So, time to index all files sounds definitely reasonable... Moreover, this scenario should happen seldom as user does not close/open often big projects and even if it happens, indexing progress is shown to user in dialog. So, he cannot longer feel that eclipse is currently hanging. Due to all these reasons, I close this bug as FIXED.
Re: "Close all projects: ~45s" Just out of curiosity, why does it take 45 seconds to *close* all the projects. If the projects are all closed, then there should be nothing to index. It seems like it should be almost instant.
Mike, I didn't say that index take 45s while closing project. AFAIK, there's no indexing during this operation. I put this time just to make indexing time relative to other operations on same number of projects...
Apologies Fred. I misread. Adding JA to CC list to answer the question: Why does closing all projects take 45s?
I have entered Bug 94436 to investigate performance of closing projects. This does have to do significant work, since it saves the project subtree to disk. Other PRE_CLOSE resource change listeners might also be adding some time.
Verified for 3.1 M7 using build I20050509-2010 + jdt.core HEAD.