eclipse-pde / eclipse.pde

Eclipse Public License 2.0
25 stars 64 forks source link

2 ApiFilterStoreTests failed in I20240513-1800 #1264

Closed jukzi closed 1 day ago

jukzi commented 4 months ago

Both on win and linux but not on Mac: https://download.eclipse.org/eclipse/downloads/drops4/I20240513-1800/testresults/html/org.eclipse.pde.api.tools.tests_ep432I-unit-win32-java17_win32.win32.x86_64_17.html https://download.eclipse.org/eclipse/downloads/drops4/I20240513-1800/testresults/html/org.eclipse.pde.api.tools.tests_ep432I-unit-cen64-gtk3-java17_linux.gtk.x86_64_17.html

Problems encountered while deleting resources.

org.eclipse.core.internal.resources.ResourceException: Problems encountered while deleting resources.
at org.eclipse.core.internal.resources.Resource.delete(Resource.java:816)
at org.eclipse.pde.api.tools.tests.AbstractApiTest.deleteProject(AbstractApiTest.java:197)
at org.eclipse.pde.api.tools.model.tests.ApiFilterStoreTests.tearDown(ApiFilterStoreTests.java:88)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
Contains: Could not delete '/APIPluginTests/.settings'.
org.eclipse.core.internal.resources.ResourceException: Problems encountered while deleting resources.
at org.eclipse.core.internal.localstore.FileSystemResourceManager.delete(FileSystemResourceManager.java:415)
at org.eclipse.core.internal.resources.ResourceTree.internalDeleteFolder(ResourceTree.java:363)
at org.eclipse.core.internal.resources.ResourceTree.internalDeleteProject(ResourceTree.java:398)
at org.eclipse.core.internal.resources.ResourceTree.standardDeleteProject(ResourceTree.java:855)
at org.eclipse.core.internal.resources.Resource.unprotectedDelete(Resource.java:1834)
at org.eclipse.core.internal.resources.Resource.delete(Resource.java:803)
at org.eclipse.pde.api.tools.tests.AbstractApiTest.deleteProject(AbstractApiTest.java:197)
at org.eclipse.pde.api.tools.model.tests.ApiFilterStoreTests.tearDown(ApiFilterStoreTests.java:88)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:63)
at org.eclipse.test.EclipseTestRunner.runTests(EclipseTestRunner.java:212)
at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:187)
at org.eclipse.test.CoreTestApplication.runTests(CoreTestApplication.java:53)
at org.eclipse.test.CoreTestApplication.run(CoreTestApplication.java:35)
at org.eclipse.test.CoreTestApplication.start(CoreTestApplication.java:44)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
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)
Contains: Could not delete: C:\Users\genie.releng\workspace\AutomatedTests\ep432I-unit-win32-java17\workarea\I20240513-1800\eclipse-testing\test-eclipse\eclipse\api_tools_plugins_folder\data\APIPluginTests\.settings.
java.nio.file.DirectoryNotEmptyException: C:\Users\genie.releng\workspace\AutomatedTests\ep432I-unit-win32-java17\workarea\I20240513-1800\eclipse-testing\test-eclipse\eclipse\api_tools_plugins_folder\data\APIPluginTests\.settings
at java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:272)
at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at org.eclipse.core.internal.filesystem.local.LocalFile.internalDelete(LocalFile.java:286)
at org.eclipse.core.internal.filesystem.local.LocalFile.delete(LocalFile.java:159)
at org.eclipse.core.internal.localstore.DeleteVisitor.delete(DeleteVisitor.java:66)
at org.eclipse.core.internal.localstore.DeleteVisitor.visit(DeleteVisitor.java:156)
at org.eclipse.core.internal.localstore.UnifiedTree.accept(UnifiedTree.java:119)
at org.eclipse.core.internal.localstore.FileSystemResourceManager.delete(FileSystemResourceManager.java:412)
at org.eclipse.core.internal.resources.ResourceTree.internalDeleteFolder(ResourceTree.java:363)
at org.eclipse.core.internal.resources.ResourceTree.internalDeleteProject(ResourceTree.java:398)
at org.eclipse.core.internal.resources.ResourceTree.standardDeleteProject(ResourceTree.java:855)
at org.eclipse.core.internal.resources.Resource.unprotectedDelete(Resource.java:1834)
at org.eclipse.core.internal.resources.Resource.delete(Resource.java:803)
at org.eclipse.pde.api.tools.tests.AbstractApiTest.deleteProject(AbstractApiTest.java:197)
at org.eclipse.pde.api.tools.model.tests.ApiFilterStoreTests.tearDown(ApiFilterStoreTests.java:88)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.RunAfters.invokeMethod(RunAfters.java:46)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:63)
at org.eclipse.test.EclipseTestRunner.runTests(EclipseTestRunner.java:212)
at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java:187)
at org.eclipse.test.CoreTestApplication.runTests(CoreTestApplication.java:53)
at org.eclipse.test.CoreTestApplication.run(CoreTestApplication.java:35)
at org.eclipse.test.CoreTestApplication.start(CoreTestApplication.java:44)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:143)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:109)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:439)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:271)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
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)
Contains: Could not delete 'C:\Users\genie.releng\workspace\AutomatedTests\ep432I-unit-win32-java17\workarea\I20240513-1800\eclipse-testing\test-eclipse\eclipse\api_tools_plugins_folder\data\APIPluginTests'.
Cannot nest 'APIPluginTests/src' inside 'APIPluginTests'. To enable the nesting exclude 'src/' from 'APIPluginTests'

Java Model Exception: Error in Java Model (code 964): Cannot nest 'APIPluginTests/src' inside 'APIPluginTests'. To enable the nesting exclude 'src/' from 'APIPluginTests'
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:801)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3518)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3478)
at org.eclipse.jdt.internal.core.JavaProject.setRawClasspath(JavaProject.java:3534)
at org.eclipse.pde.internal.core.project.ProjectModifyOperation.configureJavaProject(ProjectModifyOperation.java:306)
at org.eclipse.pde.internal.core.project.ProjectModifyOperation.execute(ProjectModifyOperation.java:167)
at org.eclipse.pde.internal.core.project.BundleProjectDescription.apply(BundleProjectDescription.java:468)
at org.eclipse.pde.api.tools.tests.util.ProjectUtils.createPluginProject(ProjectUtils.java:190)
at org.eclipse.pde.api.tools.tests.AbstractApiTest.createProject(AbstractApiTest.java:158)
at org.eclipse.pde.api.tools.model.tests.ApiFilterStoreTests.setUp(ApiFilterStoreTests.java:64)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)

Can not reproduce locally, there where no recent commits to PDE.

Popped up at the same time as https://github.com/eclipse-platform/eclipse.platform/issues/1366

HeikoKlare commented 4 months ago

This might also be related to:

I hope that eclipse-platform/eclipse.platform#1367 fixes eclipse-platform/eclipse.platform#1366, so I would propose to check tomorrow's I-Build to see if this issue may also be fixed by that.

HeikoKlare commented 4 months ago

I tried to find out whether one of those PRs is related to these test failures, but it is quite complicated as only I-Builds seem to be affected:

What I can at least say is that the code that throws an exception in the test case testRemoveFilter() is only executed when the project to be created already existed. This is the case because testAddFilterFromFilter() failed, so most likely the problem is only with the failing teardown of testAddFilterFromFilter(). Fixing that test will also fix the other one.

The stack trace for the failing teardown (doing a deletion of a project) indicates that the workspace is not up to date, as the workspace tree is traversed to delete elements from the leaves to the root, but still the .settings folder is not empty when trying to delete it:

java.nio.file.DirectoryNotEmptyException: /home/jenkins/agent/workspace/AutomatedTests/ep432I-unit-cen64-gtk3-java17/workarea/I20240513-1800/eclipse-testing/test-eclipse/eclipse/api_tools_plugins_folder/data/APIPluginTests/.settings
at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:246)
at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at org.eclipse.core.internal.filesystem.local.LocalFile.internalDelete(LocalFile.java:286)
at org.eclipse.core.internal.filesystem.local.LocalFile.delete(LocalFile.java:159)
at org.eclipse.core.internal.localstore.DeleteVisitor.delete(DeleteVisitor.java:66)
at org.eclipse.core.internal.localstore.DeleteVisitor.visit(DeleteVisitor.java:156)
at org.eclipse.core.internal.localstore.UnifiedTree.accept(UnifiedTree.java:119)
at org.eclipse.core.internal.localstore.FileSystemResourceManager.delete(FileSystemResourceManager.java:412)

Still the question is why this suddenly popped up. One change in addition to the platform ones at the day before the failure popped up is:

But I don't see how that should be related.

HannesWell commented 1 day ago

The tests are not failing anymore in the latest I-builds so I think we can assume this is fixed somehow.