5

I am running swtbot tests inside docker with eclipse 2019-09, the tests run fine if I run them from my host with eclipse 2019-09 but when I run them inside the docker I get the following error

 !SESSION 2019-11-12 20:17:58.723 ---------------------------------------- 
  -------
 eclipse.buildId=unknown
 java.version=11.0.5
 java.vendor=AdoptOpenJDK
 BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
 Framework arguments:  -swtbot -suite C:/testrun/NIGHTLY -application 
 org.eclipse.swtbot.eclipse.junit.headless.swtbottestapplication -product 
 org.eclipse.platform.ide -testApplication 
 C:/tmp/eclipse/plugins/org.eclipse.ui.ide.workbench -testPluginName 
 ui.test -className ui.test.collection.BasicTests 
 Command-line arguments:  -swtbot -suite C:/testrun/NIGHTLY -application 
 org.eclipse.swtbot.eclipse.junit.headless.swtbottestapplication -product 
 org.eclipse.platform.ide -testApplication 
 C:/tmp/eclipse/plugins/org.eclipse.ui.ide.workbench -data 
 C:/tmp/eclipse/workspace -testPluginName ui.test -className 
 ui.test.collection.BasicTests -debug -clean 

!ENTRY org.eclipse.osgi 4 0 2019-11-12 20:18:27.576
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: No more handles
at org.eclipse.swt.SWT.error(SWT.java:4737)
at org.eclipse.swt.SWT.error(SWT.java:4626)
at org.eclipse.swt.SWT.error(SWT.java:4597)
at org.eclipse.swt.widgets.Widget.error(Widget.java:452)
at org.eclipse.swt.widgets.TaskBar.createHandle(TaskBar.java:75)
at org.eclipse.swt.widgets.TaskBar.<init>(TaskBar.java:68)
at org.eclipse.swt.widgets.Display.getSystemTaskBar(Display.java:2512)
at org.eclipse.ui.internal.StandardTrim.createProgressBar(StandardTrim.java:76)
at org.eclipse.ui.internal.StandardTrim.createWidget(StandardTrim.java:52)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:998)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:139)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:408)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:345)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:227)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:94)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:37)
at org.eclipse.e4.ui.workbench.renderers.swt.ToolControlRenderer.createWidget(ToolControlRenderer.java:129)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1002)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717)
at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:73)
at org.eclipse.e4.ui.workbench.renderers.swt.TrimBarRenderer.processContents(TrimBarRenderer.java:134)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:676)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:547)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:531)
at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:687)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:676)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1086)
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:633)
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:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
at org.eclipse.swtbot.eclipse.junit.headless.UITestApplication.start(UITestApplication.java:58)
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:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
at org.eclipse.equinox.launcher.Main.main(Main.java:1441)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-11-12 20:18:27.654
!MESSAGE 
!STACK 0
java.lang.NullPointerException
at org.eclipse.ui.internal.WorkbenchWindow.updateLayoutDataForContents(WorkbenchWindow.java:2992)
at org.eclipse.ui.internal.WorkbenchWindow.setCoolBarVisible(WorkbenchWindow.java:2793)
at org.eclipse.ui.internal.ViewIntroAdapterPart.setBarVisibility(ViewIntroAdapterPart.java:222)
at org.eclipse.ui.internal.ViewIntroAdapterPart.dispose(ViewIntroAdapterPart.java:151)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.invalidate(CompatibilityPart.java:260)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.destroy(CompatibilityPart.java:417)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:998)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:963)
at org.eclipse.e4.core.internal.di.InjectorImpl.disposed(InjectorImpl.java:459)
at org.eclipse.e4.core.internal.di.Requestor.disposed(Requestor.java:160)
at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier$ContextInjectionListener.update(ContextObjectSupplier.java:83)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:105)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.handleInvalid(TrackableComputationExt.java:68)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:186)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:171)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:171)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:171)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:102)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:144)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:973)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:235)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:141)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:133)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:231)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:498)
at org.eclipse.osgi.container.Module.doStop(Module.java:656)
at org.eclipse.osgi.container.Module.stop(Module.java:520)
at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:207)
at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:220)
at java.base/java.lang.Thread.run(Thread.java:834)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-11-12 20:18:27.685
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.eclipse.swt.SWTException: Device is disposed
at org.eclipse.swt.SWT.error(SWT.java:4711)
at org.eclipse.swt.SWT.error(SWT.java:4626)
at org.eclipse.swt.SWT.error(SWT.java:4597)
at org.eclipse.swt.widgets.Display.error(Display.java:1191)
at org.eclipse.swt.widgets.Display.asyncExec(Display.java:687)
at org.eclipse.ui.internal.WorkbenchWindow$5.changed(WorkbenchWindow.java:865)
at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:108)
at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:364)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:188)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:171)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:171)
at org.eclipse.e4.core.internal.contexts.EclipseContext.dispose(EclipseContext.java:171)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.dispose(EclipseContextOSGi.java:102)
at org.eclipse.e4.core.internal.contexts.osgi.EclipseContextOSGi.bundleChanged(EclipseContextOSGi.java:144)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:973)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:235)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:141)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:133)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:231)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:498)
at org.eclipse.osgi.container.Module.doStop(Module.java:656)
at org.eclipse.osgi.container.Module.stop(Module.java:520)
at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:207)
at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:220)
at java.base/java.lang.Thread.run(Thread.java:834)

It runs fine in eclipse 2019-03 both on my host and inside the docker. Can anyone help me what is the issue? Is it the resources provided to eclipse in docker not enough or something else?

Thanks

Ragnar
  • 645
  • 8
  • 28
  • Which docker image? There's not enough to go on here. – nitind Nov 11 '19 at 11:12
  • mcr.microsoft.com/windows/servercore:ltsc2016 – Ragnar Nov 11 '19 at 12:07
  • @nitind you can see the updated log – Ragnar Nov 11 '19 at 14:04
  • Please show the log from the beginning (starting with `!SESSION` ...). – howlger Nov 11 '19 at 14:40
  • what I have tried so far , I copied the eclipse from my docker container to my host and tried to run the tests on the same eclipse and it works on my host machine and running the same tests with the same eclipse inside docker container is crashing eclipse – Ragnar Nov 11 '19 at 14:54
  • The initialization of the class that represents the Windows task bar fails (`TaskBar.`) which only exists on Windows. Does the Windows of the docker image has a (normal) task bar? – howlger Nov 11 '19 at 15:34
  • How can I see Does the Windows of the docker image has a (normal) task bar? – Ragnar Nov 11 '19 at 16:18
  • Can you do a _Remote Desktop Connection_? Do you get the same exception when running [this snippet](https://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet130.java) or just `Display.getSystemTaskBar()`? – howlger Nov 11 '19 at 18:11
  • @howlger I don't get the exception by running the snippet – Ragnar Nov 12 '19 at 10:09
  • The log contains unordered (according to the time stamps) items which is not possible. Please delete the log file, reproduce the issue and add this log to your question instead. – howlger Nov 12 '19 at 16:26
  • @howlger reproduced the issue and updated the with new log – Ragnar Nov 12 '19 at 19:34
  • This question has been reported by the questioner or by someone else to Eclipse (see [Eclipse bug 552980](https://bugs.eclipse.org/bugs/show_bug.cgi?id=552980)). – howlger Nov 14 '19 at 09:16
  • @howlger I reported this question on eclipse forum – Ragnar Nov 14 '19 at 09:20
  • Thanks for reporting it to Eclipse. I just added links which might be helpful. _No more handles_ happens after 10 seconds. It could be that there is actually a resource leak in your code that appears late or not at all, depending on the Windows version (I know from another issue that there are differences between Windows 7 and 10). Could you please provide more information about host and Docker Windows? _"It runs fine in eclipse 2019-03 both on my host and inside the docker."_ contradicts the first sentence, doesn't it? – howlger Nov 14 '19 at 09:30
  • I mean If I use target definitions to build eclipse 2019-03 and then run the tests inside the same docker environment, the tests pass, but if I use target definitions to build eclipse 2019-09 and run the tests inside docker it fails by crashing eclipse , the tests don't even run because eclipse crashes immediately – Ragnar Nov 14 '19 at 09:34
  • Docker Windows image is exactly the same for both eclipse 2019-03 and eclipse 2019-09, but tests pass if I run them in eclipse 2019-03 and fails while using eclipse 2019-09 – Ragnar Nov 14 '19 at 09:40
  • Using which SWTBot version? Make sure to use [SWTBot 2.8.0](https://projects.eclipse.org/projects/technology.swtbot/reviews/2.8.0-release-review) in Eclipse 2019-09 (4.13) as this is part of the 2019-09 release. – howlger Nov 14 '19 at 13:37
  • @howlger this is my swtbot version org.eclipse.swtbot_2.8.0.201906121535 – Ragnar Nov 14 '19 at 13:48

1 Answers1

0

It's most likely you have a resource leak of some description. Have a look at http://www.eclipse.org/articles/swt-design-2/sleak.htm utility. Sleak will help you to detect leaks in SWT application code.

Mac Tíre
  • 37
  • 8