Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 487874

Summary: [e4] java.lang.RuntimeException: Cycle while computing value
Product: [RT] RAP Reporter: Ivan Furnadjiev <ivan>
Component: IncubatorAssignee: Project Inbox <rap.incubator-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: tom.schindl
Version: 3.1   
Target Milestone: 3.1 M7   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Bug Depends on: 479778    
Bug Blocks:    

Description Ivan Furnadjiev CLA 2016-02-16 08:55:36 EST
Today I ran Gatling load test with 200 concurent user sessions against e4 demo. This exeption is thrown one or more times:

!ENTRY org.eclipse.e4.ui.workbench 4 0 2016-02-16 10:09:04.406
!MESSAGE Internal Error
!STACK 0
java.lang.RuntimeException: Cycle while computing valueorg.eclipse.e4.ui.internal.workbench.ActivePartLookupFunction@e76f47b
	at org.eclipse.e4.core.internal.contexts.ValueComputation.get(ValueComputation.java:57)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.internalGet(EclipseContext.java:226)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.get(EclipseContext.java:213)
	at org.eclipse.e4.ui.workbench.renderers.swt.ToolBarManagerRenderer$3.changed(ToolBarManagerRenderer.java:358)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:114)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:341)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:356)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.activate(EclipseContext.java:666)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.activateBranch(EclipseContext.java:672)
	at org.eclipse.e4.ui.internal.workbench.PartActivationHistory.activate(PartActivationHistory.java:52)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:704)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:639)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:106)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$9.widgetSelected(StackRenderer.java:1104)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:263)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:109)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:687)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:594)
	at org.eclipse.swt.widgets.Display.executeNextEvent(Display.java:1217)
	at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1198)
	at org.eclipse.swt.widgets.Display.safeReadAndDispatch(Display.java:1181)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1173)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:994)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
	at org.eclipse.rap.e4.E4EntryPointFactory.createWorkbench(E4EntryPointFactory.java:85)
	at org.eclipse.rap.e4.E4EntryPointFactory.access$0(E4EntryPointFactory.java:58)
	at org.eclipse.rap.e4.E4EntryPointFactory$1.createUI(E4EntryPointFactory.java:49)
	at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:177)
	at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:290)
	at java.lang.Thread.run(Unknown Source)
	at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:107)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2016-02-16 10:09:51.693
!MESSAGE Internal Error
!STACK 0
java.lang.RuntimeException: Cycle while computing valueorg.eclipse.e4.ui.internal.workbench.ActiveChildLookupFunction@4d7fe74b
	at org.eclipse.e4.core.internal.contexts.ValueComputation.get(ValueComputation.java:57)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.internalGet(EclipseContext.java:226)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.get(EclipseContext.java:213)
	at org.eclipse.e4.ui.workbench.renderers.swt.ToolBarManagerRenderer$3.changed(ToolBarManagerRenderer.java:358)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:114)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:341)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:356)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.activate(EclipseContext.java:666)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.activateBranch(EclipseContext.java:672)
	at org.eclipse.e4.ui.internal.workbench.PartActivationHistory.activate(PartActivationHistory.java:52)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:704)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:639)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:106)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$9.widgetSelected(StackRenderer.java:1104)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:263)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:109)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:687)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:594)
	at org.eclipse.swt.widgets.Display.executeNextEvent(Display.java:1217)
	at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1198)
	at org.eclipse.swt.widgets.Display.safeReadAndDispatch(Display.java:1181)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1173)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:994)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
	at org.eclipse.rap.e4.E4EntryPointFactory.createWorkbench(E4EntryPointFactory.java:85)
	at org.eclipse.rap.e4.E4EntryPointFactory.access$0(E4EntryPointFactory.java:58)
	at org.eclipse.rap.e4.E4EntryPointFactory$1.createUI(E4EntryPointFactory.java:49)
	at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:177)
	at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:290)
	at java.lang.Thread.run(Unknown Source)
	at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:107)
Comment 1 Ivan Furnadjiev CLA 2016-02-17 04:30:40 EST
I logged the threads when the exception occurred. ValueComputation.get() is called from two different UI threads.
Comment 2 Ivan Furnadjiev CLA 2016-02-17 04:37:16 EST
Not related to ToolBarManagerRenderer

!ENTRY org.eclipse.e4.ui.workbench 4 0 2016-02-17 11:34:41.304
!MESSAGE Internal Error
!STACK 0
java.lang.RuntimeException: Cycle while computing valueorg.eclipse.e4.ui.internal.services.ActiveContextsFunction@38c223ce
	at org.eclipse.e4.core.internal.contexts.ValueComputation.get(ValueComputation.java:57)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.internalGet(EclipseContext.java:226)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.get(EclipseContext.java:213)
	at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier.fillArgs(ContextObjectSupplier.java:194)
	at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier.get(ContextObjectSupplier.java:172)
	at org.eclipse.e4.core.internal.di.InjectorImpl.resolveArgs(InjectorImpl.java:505)
	at org.eclipse.e4.core.internal.di.InjectorImpl.resolveArguments(InjectorImpl.java:395)
	at org.eclipse.e4.core.internal.di.Requestor.resolveArguments(Requestor.java:149)
	at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:89)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:111)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:341)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:356)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.activate(EclipseContext.java:666)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.activateBranch(EclipseContext.java:672)
	at org.eclipse.e4.ui.internal.workbench.PartActivationHistory.activate(PartActivationHistory.java:52)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:704)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:639)
	at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:106)
	at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$9.widgetSelected(StackRenderer.java:1104)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:263)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:109)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:687)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:594)
	at org.eclipse.swt.widgets.Display.executeNextEvent(Display.java:1217)
	at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1198)
	at org.eclipse.swt.widgets.Display.safeReadAndDispatch(Display.java:1181)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1173)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:994)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
	at org.eclipse.rap.e4.E4EntryPointFactory.createWorkbench(E4EntryPointFactory.java:85)
	at org.eclipse.rap.e4.E4EntryPointFactory.access$0(E4EntryPointFactory.java:58)
	at org.eclipse.rap.e4.E4EntryPointFactory$1.createUI(E4EntryPointFactory.java:49)
	at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:177)
	at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:290)
	at java.lang.Thread.run(Unknown Source)
	at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:107)