Community
Participate
Working Groups
20030206 after 'build all' the ui is totally not responsive for more than 3 minutes Full thread dump: "ModalContext" prio=5 tid=0x261e5e40 nid=0xbe0 waiting on monitor [0x26d7f000..0 x26d7fdbc] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:420) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:141) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:1 8) at org.eclipse.swt.widgets.Display.syncExec(Display.java:2000) at org.eclipse.jface.operation.AccumulatingProgressMonitor.done(Accumula tingProgressMonitor.java:121) at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:19 0) at org.eclipse.debug.internal.ui.DebugUIPlugin$2.run(DebugUIPlugin.java: 483) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(Modal Context.java:95) "Snapshot" prio=5 tid=0x2620ce88 nid=0x914 waiting on monitor [0x26cff000..0x26c ffdbc] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:420) at org.eclipse.core.internal.utils.Semaphore.acquire(Semaphore.java:24) at org.eclipse.core.resources.WorkspaceLock.acquire(WorkspaceLock.java:4 9) at org.eclipse.ui.internal.UIWorkspaceLock.acquire(UIWorkspaceLock.java: 40) at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.j ava:80) at org.eclipse.core.internal.resources.Workspace.prepareOperation(Worksp ace.java:1551) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1586 ) at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.runSnapsh ot(DelayedSnapshotRunnable.java:68) at org.eclipse.core.internal.resources.DelayedSnapshotRunnable.run(Delay edSnapshotRunnable.java:44) at java.lang.Thread.run(Thread.java:484) "Decoration" prio=2 tid=0x24d01458 nid=0xd30 runnable [0x25e5f000..0x25e5fdbc] at java.io.FileOutputStream.close(Native Method) at org.eclipse.core.internal.indexing.LogWriter.close(LogWriter.java:48) at org.eclipse.core.internal.indexing.LogWriter.putModifiedPages(LogWrit er.java:28) at org.eclipse.core.internal.indexing.PageStore.commit(PageStore.java:20 9) at org.eclipse.core.internal.indexing.ObjectStore.commit(ObjectStore.jav a:181) at org.eclipse.core.internal.indexing.IndexedStore.commit(IndexedStore.j ava:137) at org.eclipse.core.internal.properties.IndexedStoreWrapper.commit(Index edStoreWrapper.java:86) at org.eclipse.core.internal.properties.PropertyStore.commit(PropertySto re.java:449) at org.eclipse.core.internal.properties.PropertyManager.setProperty(Prop ertyManager.java:173) at org.eclipse.core.internal.resources.Resource.setPersistentProperty(Re source.java:1164) at org.eclipse.team.internal.ccvs.core.resources.SessionPropertySyncInfo Cache.internalSetDirtyIndicator(SessionPropertySyncInfoCache.java:209) at org.eclipse.team.internal.ccvs.core.resources.SessionPropertySyncInfo Cache.setDirtyIndicator(SessionPropertySyncInfoCache.java:183) at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.set DirtyIndicator(EclipseSynchronizer.java:1240) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:456) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:447) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:447) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:447) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:447) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:447) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:447) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.determine DirtyCount(EclipseFolder.java:447) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.isModifie d(EclipseFolder.java:405) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$1.run(CVSLi ghtweightDecorator.java:104) at org.eclipse.team.internal.ccvs.core.resources.EclipseSynchronizer.run (EclipseSynchronizer.java:1216) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder$3.run(Ecl ipseFolder.java:320) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1588 ) at org.eclipse.team.internal.ccvs.core.resources.EclipseFolder.run(Eclip seFolder.java:317) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty(CVS LightweightDecorator.java:100) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.isDirty(CVS LightweightDecorator.java:121) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.decorate(CV SLightweightDecorator.java:191) at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.dec orate(LightweightDecoratorDefinition.java:153) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$Lightw eightRunnable.run(LightweightDecoratorManager.java:60) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatfo rm.java:867) at org.eclipse.core.runtime.Platform.run(Platform.java:413) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decora te(LightweightDecoratorManager.java:209) at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDec orations(LightweightDecoratorManager.java:190) at org.eclipse.ui.internal.decorators.DecorationScheduler$3.run(Decorati onScheduler.java:290) at java.lang.Thread.run(Thread.java:484) "Java indexing" daemon prio=4 tid=0x24cc78c0 nid=0x8fc waiting on monitor [0x25d 5f000..0x25d5fdbc] at java.lang.Thread.sleep(Native Method) at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobMan ager.java:334) at java.lang.Thread.run(Thread.java:484) "Signal Dispatcher" daemon prio=10 tid=0x85a910 nid=0xa1c waiting on monitor [0. .0] "Finalizer" daemon prio=9 tid=0x827a10 nid=0xbbc waiting on monitor [0x24e0f000. .0x24e0fdbc] at java.lang.Object.wait(Native Method) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:108) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:123) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:162) "Reference Handler" daemon prio=10 tid=0x24b50870 nid=0x978 waiting on monitor [ 0x24dcf000..0x24dcfdbc] at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:420) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:110) "main" prio=5 tid=0x234718 nid=0x8e0 runnable [0x6e000..0x6fc34] at org.eclipse.core.internal.resources.MarkerAttributeMap.get(MarkerAttr ibuteMap.java:118) at org.eclipse.core.internal.resources.MarkerInfo.getAttribute(MarkerInf o.java:35) at org.eclipse.core.internal.resources.Marker.getAttribute(Marker.java:1 00) at org.eclipse.jdt.ui.ProblemsLabelDecorator.getErrorTicksFromMarkers(Pr oblemsLabelDecorator.java:213) at org.eclipse.jdt.ui.ProblemsLabelDecorator.computeAdornmentFlags(Probl emsLabelDecorator.java:163) at org.eclipse.jdt.internal.ui.viewsupport.TreeHierarchyLayoutProblemsDe corator.computeAdornmentFlags(TreeHierarchyLayoutProblemsDecorator.java:69) at org.eclipse.jdt.ui.ProblemsLabelDecorator.decorateImage(ProblemsLabel Decorator.java:146) at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage( JavaUILabelProvider.java:119) at org.eclipse.jface.viewers.DecoratingLabelProvider.getImage(Decorating LabelProvider.java:67) at org.eclipse.jdt.internal.ui.viewsupport.DecoratingJavaLabelProvider.g etImage(DecoratingJavaLabelProvider.java:91) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.updateI tem(ResourceToItemsMapper.java:65) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.resourc eChanged(ResourceToItemsMapper.java:50) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabel ProviderChanged(ProblemTreeViewer.java:116) at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(Conten tViewer.java:68) at org.eclipse.ui.internal.decorators.DecoratorManager$1.run(DecoratorMa nager.java:148) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatfo rm.java:867) at org.eclipse.core.runtime.Platform.run(Platform.java:413) at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners(Dec oratorManager.java:146) at org.eclipse.ui.internal.decorators.DecoratorManager.labelProviderChan ged(DecoratorManager.java:443) at org.eclipse.jface.viewers.LabelProvider$1.run(LabelProvider.java:59) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatfo rm.java:867) at org.eclipse.core.runtime.Platform.run(Platform.java:413) at org.eclipse.jface.viewers.LabelProvider.fireLabelProviderChanged(Labe lProvider.java:57) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.access$0(CV SLightweightDecorator.java:1) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$3.run(CVSLi ghtweightDecorator.java:526) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:31) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.ja va:94) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1669) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1414) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(Mod alContext.java:130) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:255) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDi alog.java:351) at org.eclipse.debug.internal.ui.DebugUIPlugin.doBuild(DebugUIPlugin.jav a:480) at org.eclipse.debug.internal.ui.DebugUIPlugin.saveAndBuild(DebugUIPlugi n.java:470) at org.eclipse.debug.ui.DebugUITools.saveAndBuildBeforeLaunch(DebugUIToo ls.java:449) at org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut.launchCon figuration(JUnitLaunchShortcut.java:193) at org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut.launch(JU nitLaunchShortcut.java:163) at org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut.launchTyp e(JUnitLaunchShortcut.java:120) at org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut.searchAnd Launch(JUnitLaunchShortcut.java:96) at org.eclipse.jdt.internal.junit.launcher.JUnitLaunchShortcut.launch(JU nitLaunchShortcut.java:74) at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExte nsion.launch(LaunchShortcutExtension.java:192) at org.eclipse.debug.internal.ui.actions.LaunchShortcutAction.run(Launch ShortcutAction.java:49) at org.eclipse.jface.action.Action.runWithEvent(Action.java:804) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:450) at org.eclipse.jface.action.ActionContributionItem.handleWidgetEvent(Act ionContributionItem.java:398) at org.eclipse.jface.action.ActionContributionItem.access$0(ActionContri butionItem.java:392) at org.eclipse.jface.action.ActionContributionItem$ActionListener.handle Event(ActionContributionItem.java:72) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:836) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1289) at org.eclipse.ui.internal.Workbench.run(Workbench.java:1272) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoa der.java:845) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:247) at org.eclipse.core.launcher.Main.run(Main.java:703) at org.eclipse.core.launcher.Main.main(Main.java:539) "VM Thread" prio=5 tid=0x23f730 nid=0x10bc runnable "VM Periodic Task Thread" prio=10 tid=0x8595d8 nid=0x10c0 waiting on monitor "Suspend Checker Thread" prio=10 tid=0x859f60 nid=0x740 runnable
don't know if it happens to everybody, but when it happens to me i'm not sure if i should maybe kill the ide
Regarding the stack trace there are two thread active main with org.eclipse.jdt.ui.ProblemsLabelDecorator.getErrorTicksFromMarkers(Pr oblemsLabelDecorator.java:213) and Decoration doing some CVS decorations. Adam, can you please doa performance analysis to see if it is the problem decorator or the CVS decoration.
After looking at the stack trace again I come to the following conclusion: Launching triggers a build that is executed in a model context thread. When the build is finish the build action calls done on the progress monitor which causes a sync exec. (see stack trace of Modal context thread). Since the UI thread is busy executing label decorator runnables (the delta has already been send out by ending the build actions), the model context thread has to wait until all already existing decorator runnables in the queue has been executed. This causes a situation where the user gets the feeling that the UI is froozen. The problem seem to related to bug 30296. Moving to platform.
I got it again and the stack trace of the Main thread is below. So it is actually processing ruunables since every request of a thread dump shows a different main stack trace (tested 10). "main" prio=5 tid=0x234718 nid=0xae0 runnable [0x6e000..0x6fc34] at java.lang.String.equals(String.java:713) at java.util.HashMap.get(HashMap.java:269) at org.eclipse.core.internal.resources.MarkerTypeDefinitionCache.isSubty pe(MarkerTypeDefinitionCache.java:62) at org.eclipse.core.internal.resources.MarkerManager.basicFindMatching(M arkerManager.java:104) at org.eclipse.core.internal.resources.MarkerManager.access$0(MarkerMana ger.java:91) at org.eclipse.core.internal.resources.MarkerManager$2.visitElement(Mark erManager.java:361) at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(Elem entTreeIterator.java:76) at org.eclipse.core.internal.watson.ElementTreeIterator.doIteration(Elem entTreeIterator.java:80) at org.eclipse.core.internal.watson.ElementTreeIterator.iterate(ElementT reeIterator.java:119) at org.eclipse.core.internal.resources.MarkerManager.visitorFindMarkers( MarkerManager.java:367) at org.eclipse.core.internal.resources.MarkerManager.findMarkers(MarkerM anager.java:220) at org.eclipse.core.internal.resources.Resource.findMarkers(Resource.jav a:748) at org.eclipse.jdt.ui.ProblemsLabelDecorator.getErrorTicksFromMarkers(Pr oblemsLabelDecorator.java:208) at org.eclipse.jdt.ui.ProblemsLabelDecorator.computeAdornmentFlags(Probl emsLabelDecorator.java:163) at org.eclipse.jdt.internal.ui.viewsupport.TreeHierarchyLayoutProblemsDe corator.computeAdornmentFlags(TreeHierarchyLayoutProblemsDecorator.java:69) at org.eclipse.jdt.ui.ProblemsLabelDecorator.decorateImage(ProblemsLabel Decorator.java:146) at org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage( JavaUILabelProvider.java:119) at org.eclipse.jface.viewers.DecoratingLabelProvider.getImage(Decorating LabelProvider.java:67) at org.eclipse.jdt.internal.ui.viewsupport.DecoratingJavaLabelProvider.g etImage(DecoratingJavaLabelProvider.java:91) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.updateI tem(ResourceToItemsMapper.java:65) at org.eclipse.jdt.internal.ui.viewsupport.ResourceToItemsMapper.resourc eChanged(ResourceToItemsMapper.java:50) at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabel ProviderChanged(ProblemTreeViewer.java:116) at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(Conten tViewer.java:68) at org.eclipse.ui.internal.decorators.DecoratorManager$1.run(DecoratorMa nager.java:148) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatfo rm.java:867) at org.eclipse.core.runtime.Platform.run(Platform.java:413) at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners(Dec oratorManager.java:146) at org.eclipse.ui.internal.decorators.DecoratorManager.labelProviderChan ged(DecoratorManager.java:443) at org.eclipse.jface.viewers.LabelProvider$1.run(LabelProvider.java:59) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatfo rm.java:867) at org.eclipse.core.runtime.Platform.run(Platform.java:413) at org.eclipse.jface.viewers.LabelProvider.fireLabelProviderChanged(Labe lProvider.java:57) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator.access$0(CV SLightweightDecorator.java:1) at org.eclipse.team.internal.ccvs.ui.CVSLightweightDecorator$3.run(CVSLi ghtweightDecorator.java:526) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:31) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.ja va:94) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:1669) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1414) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(Mod alContext.java:130) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:255) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDi alog.java:351) at org.eclipse.ui.actions.GlobalBuildAction.doBuildOperation(GlobalBuild Action.java:163) at org.eclipse.ui.actions.GlobalBuildAction.run(GlobalBuildAction.java:2 17) at org.eclipse.jface.action.Action.runWithEvent(Action.java:804) at org.eclipse.ui.internal.WWinKeyBindingService.invoke(WWinKeyBindingSe rvice.java:135) at org.eclipse.ui.internal.WWinKeyBindingService.pressed(WWinKeyBindingS ervice.java:116) at org.eclipse.ui.internal.WWinKeyBindingService$6.widgetSelected(WWinKe yBindingService.java:365) at org.eclipse.ui.internal.AcceleratorMenu$2.handleEvent(AcceleratorMenu .java:55) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:77) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:836) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:1692) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1410) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1289) at org.eclipse.ui.internal.Workbench.run(Workbench.java:1272) at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoa der.java:845) at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461) at java.lang.reflect.Method.invoke(Native Method) at org.eclipse.core.launcher.Main.basicRun(Main.java:247) at org.eclipse.core.launcher.Main.run(Main.java:703) at org.eclipse.core.launcher.Main.main(Main.java:539) "VM Thread" prio=5 tid=0x23f730 nid=0x650 runnable "VM Periodic Task Thread" prio=10 tid=0x8595d8 nid=0xbc8 waiting on monitor "Suspend Checker Thread" prio=10 tid=0x859f60 nid=0x798 runnable
It seems that CVS tries to decorate the class files generated by a build. And there are lots after a rebuild All.
*** This bug has been marked as a duplicate of 28343 ***