Bug 559872 - UI freeze at DecorationScheduler.queueForDecoration
Summary: UI freeze at DecorationScheduler.queueForDecoration
Status: NEW
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.14   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-UI-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted, performance
Depends on:
Blocks:
 
Reported: 2020-02-05 10:57 EST by Lars Vogel CLA
Modified: 2020-02-19 08:18 EST (History)
1 user (show)

See Also:


Attachments
jstack output (94.63 KB, text/plain)
2020-02-05 10:57 EST, Lars Vogel CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Vogel CLA 2020-02-05 10:57:12 EST
During project import of several hundreds projects I had a multi minute UI freeze. Main thread trace below:

"main" #1 prio=6 os_prio=0 tid=0x00007fcb1800b000 nid=0x6dfe waiting for monitor entry [0x00007fcb1fc2c000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at org.eclipse.core.internal.jobs.JobManager.schedule(JobManager.java:1247)
	- waiting to lock <0x00000000802e2a18> (a java.lang.Object)
	at org.eclipse.core.internal.jobs.InternalJob.schedule(InternalJob.java:385)
	at org.eclipse.core.runtime.jobs.Job.schedule(Job.java:670)
	at org.eclipse.ui.internal.decorators.DecorationScheduler.queueForDecoration(DecorationScheduler.java:216)
	- locked <0x0000000082fcec90> (a org.eclipse.ui.internal.decorators.DecorationScheduler)
	at org.eclipse.ui.internal.decorators.DecoratorManager.prepareDecoration(DecoratorManager.java:982)
	at org.eclipse.ui.internal.decorators.DecoratorManager$ManagedWorkbenchLabelDecorator.prepareDecoration(DecoratorManager.java:155)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.waitForPendingDecoration(DecoratingStyledCellLabelProvider.java:117)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:131)
	at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:144)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:954)
	at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:121)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$15/2090894907.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1032)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1923)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1937)
	at org.eclipse.jface.viewers.AbstractTreeViewer.labelProviderChanged(AbstractTreeViewer.java:2206)
	at org.eclipse.jface.viewers.ContentViewer.handleLabelProviderChanged(ContentViewer.java:199)
	at org.eclipse.jface.viewers.StructuredViewer.handleLabelProviderChanged(StructuredViewer.java:1157)
	at org.eclipse.jdt.internal.ui.viewsupport.ProblemTreeViewer.handleLabelProviderChanged(ProblemTreeViewer.java:206)
	at org.eclipse.jface.viewers.ContentViewer$1.labelProviderChanged(ContentViewer.java:95)
	at org.eclipse.jface.viewers.BaseLabelProvider$1.run(BaseLabelProvider.java:75)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$15/2090894907.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.BaseLabelProvider.fireLabelProviderChanged(BaseLabelProvider.java:72)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.lambda$0(DecoratingStyledCellLabelProvider.java:78)
	at org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider$$Lambda$356/31312124.labelProviderChanged(Unknown Source)
	at org.eclipse.ui.internal.decorators.DecoratorManager$2.run(DecoratorManager.java:365)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.DecoratorManager.fireListeners(DecoratorManager.java:362)
	at org.eclipse.ui.internal.decorators.DecoratorManager.labelProviderChanged(DecoratorManager.java:673)
	at org.eclipse.jface.viewers.BaseLabelProvider$1.run(BaseLabelProvider.java:75)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
	at org.eclipse.ui.internal.JFaceUtil$$Lambda$15/2090894907.run(Unknown Source)
	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
	at org.eclipse.jface.viewers.BaseLabelProvider.fireLabelProviderChanged(BaseLabelProvider.java:72)
	at org.eclipse.egit.ui.internal.decorators.GitDecorator.lambda$0(GitDecorator.java:90)
	at org.eclipse.egit.ui.internal.decorators.GitDecorator$$Lambda$693/993656936.run(Unknown Source)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
	- locked <0x00000000d63880f8> (a org.eclipse.swt.widgets.RunnableLock)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4930)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4451)
	at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.runEventLoop(EventLoopProgressMonitor.java:127)
	at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.isCanceled(EventLoopProgressMonitor.java:101)
	at org.eclipse.core.runtime.SubMonitor$RootInfo.isCanceled(SubMonitor.java:234)
	at org.eclipse.core.runtime.SubMonitor.isCanceled(SubMonitor.java:581)
	at org.eclipse.core.internal.jobs.ThreadJob.isCanceled(ThreadJob.java:147)
	at org.eclipse.core.internal.jobs.ThreadJob.waitForRun(ThreadJob.java:276)
	at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:205)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:95)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:298)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:124)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2242)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2287)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
	- locked <0x00000000f40840f8> (a org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:76)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:66)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:461)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.validateState(TextFileDocumentProvider.java:1037)
	at org.eclipse.ui.editors.text.ForwardingDocumentProvider.validateState(ForwardingDocumentProvider.java:216)
	at org.eclipse.ui.texteditor.AbstractTextEditor.validateState(AbstractTextEditor.java:4951)
	at org.eclipse.ui.texteditor.AbstractTextEditor.lambda$4(AbstractTextEditor.java:4994)
	at org.eclipse.ui.texteditor.AbstractTextEditor$$Lambda$1072/1851143998.run(Unknown Source)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
	at org.eclipse.ui.texteditor.AbstractTextEditor.validateEditorInputState(AbstractTextEditor.java:4994)
	at org.eclipse.ui.texteditor.StatusTextEditor.validateEditorInputState(StatusTextEditor.java:157)
	at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.validateEditorInputState(AbstractDecoratedTextEditor.java:1054)
	at org.eclipse.ui.texteditor.AbstractTextEditor$ElementStateListener$Validator.verifyText(AbstractTextEditor.java:386)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:277)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5687)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1449)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1432)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1221)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7400)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:8306)
	at org.eclipse.swt.custom.StyledText.doBackspace(StyledText.java:2315)
	at org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:7221)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:6077)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:6104)
	at org.eclipse.swt.custom.StyledText.lambda$1(StyledText.java:5793)
	at org.eclipse.swt.custom.StyledText$$Lambda$837/414940874.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5687)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1449)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1432)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1473)
	at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:837)
	at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3942)
	at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:855)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2267)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:6679)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5928)
	at org.eclipse.swt.internal.gtk.GTK.gtk_main_do_event(Native Method)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1486)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(Native Method)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4446)
	at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.runEventLoop(EventLoopProgressMonitor.java:127)
	at org.eclipse.ui.internal.dialogs.EventLoopProgressMonitor.isCanceled(EventLoopProgressMonitor.java:101)
	at org.eclipse.core.runtime.SubMonitor$RootInfo.isCanceled(SubMonitor.java:234)
	at org.eclipse.core.runtime.SubMonitor.isCanceled(SubMonitor.java:581)
	at org.eclipse.core.internal.jobs.ThreadJob.isCanceled(ThreadJob.java:147)
	at org.eclipse.core.internal.jobs.ThreadJob.joinRun(ThreadJob.java:194)
	at org.eclipse.core.internal.jobs.ImplicitJobs.begin(ImplicitJobs.java:95)
	at org.eclipse.core.internal.jobs.JobManager.beginRule(JobManager.java:298)
	at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:124)
	at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2242)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2287)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2317)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
	- locked <0x00000000f41175e8> (a org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:76)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:66)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:461)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.validateState(TextFileDocumentProvider.java:1037)
	at org.eclipse.ui.editors.text.ForwardingDocumentProvider.validateState(ForwardingDocumentProvider.java:216)
	at org.eclipse.ui.texteditor.AbstractTextEditor.validateState(AbstractTextEditor.java:4951)
	at org.eclipse.ui.texteditor.AbstractTextEditor.lambda$4(AbstractTextEditor.java:4994)
	at org.eclipse.ui.texteditor.AbstractTextEditor$$Lambda$1072/1851143998.run(Unknown Source)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
	at org.eclipse.ui.texteditor.AbstractTextEditor.validateEditorInputState(AbstractTextEditor.java:4994)
	at org.eclipse.ui.texteditor.StatusTextEditor.validateEditorInputState(StatusTextEditor.java:157)
	at org.eclipse.ui.texteditor.AbstractDecoratedTextEditor.validateEditorInputState(AbstractDecoratedTextEditor.java:1054)
	at org.eclipse.ui.texteditor.AbstractTextEditor$ElementStateListener$Validator.verifyText(AbstractTextEditor.java:386)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:277)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5687)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1449)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1432)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1221)
	at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7400)
	at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:8306)
	at org.eclipse.swt.custom.StyledText.doBackspace(StyledText.java:2291)
	at org.eclipse.swt.custom.StyledText.invokeAction(StyledText.java:7221)
	at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:6077)
	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:6104)
	at org.eclipse.swt.custom.StyledText.lambda$1(StyledText.java:5793)
	at org.eclipse.swt.custom.StyledText$$Lambda$837/414940874.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5687)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1449)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1432)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1473)
	at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:837)
	at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3942)
	at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:855)
	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2267)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:6679)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5928)
	at org.eclipse.swt.internal.gtk.GTK.gtk_main_do_event(Native Method)
	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1486)
	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(Native Method)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4446)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
	at org.eclipse.ui.internal.Workbench$$Lambda$33/1501716646.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1420)
Comment 1 Lars Vogel CLA 2020-02-05 10:57:41 EST
Created attachment 281715 [details]
jstack output