Skip to content

"Unspecified error Waiting for Edge operation to terminate timed out" #1801

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
jukzi opened this issue Feb 4, 2025 · 6 comments
Open

"Unspecified error Waiting for Edge operation to terminate timed out" #1801

jukzi opened this issue Feb 4, 2025 · 6 comments
Labels
bug Something isn't working junit JUnit test failure regression Something that used to work Windows Happens on Windows OS

Comments

@jukzi
Copy link
Contributor

jukzi commented Feb 4, 2025

Windows verification build failed on https://github.com/eclipse-platform/eclipse.platform/actions/runs/13118265699/job/36597841318?pr=1720

Error: Exception in thread "WorkbenchTestable" org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTError: Unspecified error Waiting for Edge operation to terminate timed out)
	at org.eclipse.swt.SWT.error(SWT.java:4932)
	at org.eclipse.swt.SWT.error(SWT.java:4847)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:209)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:4836)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Testable.testingFinished(E4Testable.java:157)
	at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.runTests(AbstractUITestApplication.java:57)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Testable.lambda$0(E4Testable.java:79)
	at java.base/java.lang.Thread.run(Thread.java:1583)
Caused by: org.eclipse.swt.SWTError: Unspecified error Waiting for Edge operation to terminate timed out
	at org.eclipse.swt.SWT.error(SWT.java:4957)
	at org.eclipse.swt.browser.Edge.processOSMessagesUntil(Edge.java:474)
	at org.eclipse.swt.browser.Edge$WebViewProvider.getWebViewWrapper(Edge.java:370)
	at org.eclipse.swt.browser.Edge$WebViewProvider.getWebView(Edge.java:381)
	at org.eclipse.swt.browser.Edge.getUrl(Edge.java:893)
	at org.eclipse.swt.browser.Browser.getUrl(Browser.java:771)
	at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.saveCurrentPage(BrowserIntroPartImplementation.java:645)
	at org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation.saveState(AbstractIntroPartImplementation.java:302)
	at org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation.saveState(IntroPartPresentation.java:427)
	at org.eclipse.ui.intro.config.CustomizableIntroPart.saveState(CustomizableIntroPart.java:405)
	at org.eclipse.ui.internal.ViewIntroAdapterPart.saveState(ViewIntroAdapterPart.java:198)
	at org.eclipse.ui.internal.ViewReference.persist(ViewReference.java:60)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.persistState(CompatibilityView.java:226)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:299)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:227)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:148)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:925)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:857)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:841)
	at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.disposeWidget(ElementReferenceRenderer.java:113)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:934)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:857)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:841)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:896)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:857)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:841)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:896)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:857)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:841)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:896)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:857)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:841)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.stop(PartRenderingEngine.java:1219)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.close(E4Workbench.java:190)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Testable.lambda$3(E4Testable.java:157)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4077)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3693)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1042)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:668)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:576)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:178)
	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.runApplication(UITestApplication.java:34)
	at org.eclipse.tycho.surefire.osgibooter.AbstractUITestApplication.run(AbstractUITestApplication.java:129)
	at org.eclipse.tycho.surefire.osgibooter.UITestApplication.start(UITestApplication.java:44)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:668)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:605)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1481)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1454)
Error: The operation was canceled.
@jukzi jukzi added bug Something isn't working junit JUnit test failure regression Something that used to work Windows Happens on Windows OS labels Feb 4, 2025
@fedejeanne
Copy link
Contributor

cc @HeikoKlare , @amartya4256

@HeikoKlare
Copy link
Contributor

Related to: #1706

In CI runs (at least in GitHub Actions), we face Edge browser initialization randomly taking a long time. For SWT browser tests, the timeout value is currently increased, but for tests in Platform UI that create a browser it is obviously not.
I thought about trying to limit the timeout to GitHub Actions environments, but I intended to do that in the tests and not in productive code. But that would mean that we have to configure all tests that may use an Edge browser...
Let's see what we can do for the issue directly in SWT first.

@fedejeanne
Copy link
Contributor

Do we plan to do something about this in the coming days/weeks? The timeout of 90 seconds (7ad097a) seems to be enough.

@HeikoKlare
Copy link
Contributor

It would be good to do something about this. The timeout of 90 seconds is only applied to SWT browser tests. All other consumers use the default timeout (5 seconds) if not specified otherwise. This results in the posted issue in SWT consumers tests (like in Platform UI but potentially also in other RCP extension or RCP product builds like ours) .

@fedejeanne
Copy link
Contributor

So what you're saying is:

  1. It's OK if tests have a long timeout
  2. It's not OK that currently only the browser tests have a long timeout
  3. We should not change the timeout in production code

So we should address point Nr. 2.

Correct?

@HeikoKlare
Copy link
Contributor

Well, it would of course be best to address point 1, as it's still questionable that some operations take so long during test execution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working junit JUnit test failure regression Something that used to work Windows Happens on Windows OS
Projects
None yet
Development

No branches or pull requests

3 participants