[MGNLTEST-428] CE 6.2 and 6.3 pipelines unstable due to light-module setup failures Created: 08/Aug/23 Updated: 23/Oct/23 Resolved: 16/Aug/23 |
|
| Status: | Closed |
| Project: | Magnolia Test Framework |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 1.4.5 |
| Type: | Bug | Priority: | Neutral |
| Reporter: | Dai Ha | Assignee: | Oanh Thai Hoang |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Σ Remaining Estimate: | Not Specified | Remaining Estimate: | Not Specified |
| Σ Time Spent: | 2d 2.5h | Time Spent: | Not Specified |
| Σ Original Estimate: | Not Specified | Original Estimate: | Not Specified |
| Issue Links: |
|
|||||||||||||||||||||||||
| Sub-Tasks: |
|
|||||||||||||||||||||||||
| Template: |
|
|||||||||||||||||||||||||
| Acceptance criteria: |
Empty
|
|||||||||||||||||||||||||
| Task DoD: |
[X]*
Doc/release notes changes? Comment present?
[X]*
Downstream builds green?
[X]*
Solution information and context easily available?
[X]*
Tests
[X]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
|||||||||||||||||||||||||
| Bug DoR: |
[X]*
Steps to reproduce, expected, and actual results filled
[X]*
Affected version filled
|
|||||||||||||||||||||||||
| Date of First Response: | ||||||||||||||||||||||||||
| Epic Link: | DevX Bucket | |||||||||||||||||||||||||
| Sprint: | DevX 44 | |||||||||||||||||||||||||
| Story Points: | 5 | |||||||||||||||||||||||||
| Team: | ||||||||||||||||||||||||||
| Work Started: | ||||||||||||||||||||||||||
| Approved: |
Yes
|
|||||||||||||||||||||||||
| Description |
|
it.info.magnolia.functionaltests.ContentTypeFunctionalTests it.info.magnolia.functionaltests.DefinitionsFunctionalTests.noMajorOrSevereDefinitionProblems
Updated: SpaAppTest in test-framework currently are disable. Should enable it sample stacktrace: java.lang.AssertionError: Failed to load light module: bookshelf
at info.magnolia.test.lightmodule.LightModuleUtil.loadLightModule(LightModuleUtil.java:132)
at info.magnolia.test.lightmodule.LightModuleUtil.loadLightModules(LightModuleUtil.java:155)
at info.magnolia.test.lightmodule.LightModuleUtil.loadLightModules(LightModuleUtil.java:142)
at java.util.Optional.ifPresent(Optional.java:159)
at info.magnolia.test.lightmodule.LightModulesSupport.beforeAll(LightModulesSupport.java:56)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeBeforeAllCallbacks$12(ClassBasedTestDescriptor.java:395)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeBeforeAllCallbacks(ClassBasedTestDescriptor.java:395)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:211)
at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.before(ClassBasedTestDescriptor.java:84)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:148)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:202)
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:146)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:202)
at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: java.lang.AssertionError:
Expected: is <true>
but: was <false>
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:964)
at org.junit.Assert.assertThat(Assert.java:930)
at info.magnolia.test.fixture.MagnoliaRestClient.assertResponseStatusCode(MagnoliaRestClient.java:134)
at info.magnolia.test.fixture.MagnoliaRestClient.readDefinitionProviders(MagnoliaRestClient.java:395)
at info.magnolia.test.lightmodule.LightModuleUtil.lambda$loadLightModule$1(LightModuleUtil.java:127)
at org.awaitility.core.CallableCondition$ConditionEvaluationWrapper.eval(CallableCondition.java:99)
at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:248)
at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:235)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
|
| Comments |
| Comment by Christoph Meier [ 08/Aug/23 ] |
|
Have you seen this https://git.magnolia-cms.com/projects/PLATFORM/repos/ce/pull-requests/808/overview ? -> https://git.magnolia-cms.com/projects/PLATFORM/repos/ce/pull-requests/808/overview?commentId=119033 |
| Comment by Dai Ha [ 08/Aug/23 ] |
|
Also disable: DefinitionsFunctionalTests.noMajorOrSevereDefinitionProblems because existing problems now reported on Definition app (after [ERROR] Failures: [ERROR] it.info.magnolia.functionaltests.DefinitionsFunctionalTests.noMajorOrSevereDefinitionProblems [ERROR] Run 1: DefinitionsFunctionalTests.noMajorOrSevereDefinitionProblems:79 Expected NO major or severe problem but found 1. MAJOR: Encountered the 'class' property but failed to resolved the type from its value: [info.magnolia.ui.admincentral.availability.ConfigProtectedNodeRule$Definition] ==> expected: <true> but was: <false> [ERROR] Run 2: DefinitionsFunctionalTests.noMajorOrSevereDefinitionProblems:79 Expected NO major or severe problem but found 1. MAJOR: Encountered the 'class' property but failed to resolved the type from its value: [info.magnolia.ui.admincentral.availability.ConfigProtectedNodeRule$Definition] ==> expected: <true> but was: <false> [ERROR] Run 3: DefinitionsFunctionalTests.noMajorOrSevereDefinitionProblems:79 Expected NO major or severe problem but found 1. MAJOR: Encountered the 'class' property but failed to resolved the type from its value: [info.magnolia.ui.admincentral.availability.ConfigProtectedNodeRule$Definition] ==> expected: <true> but was: <false> |
| Comment by Oanh Thai Hoang [ 09/Aug/23 ] |
|
Just a note: SpaAppTest in test-framework was disable. It should enable as well https://git.magnolia-cms.com/projects/PLATFORM/repos/test-framework/browse/magnolia-test-framework/src/test/java/it/info/magnolia/test/selenium/pageobjects/SpaAppTest.java#52 |
| Comment by Oanh Thai Hoang [ 09/Aug/23 ] |
|
I have simple suggestion: Why don't we remove using of annotation `@LightModule` from all of spa test and move all necessary light dev resources like angular-ssr-test, angular-test, react-ssr-test, react-test, vue-ssr-test, vue-test to magnolia-integration-tests-spa-module DX-core already includes magnolia-integration-tests-spa-module. so all necessary light dev resources should be ready before running test. WDUT rdhar ? |
| Comment by Oanh Thai Hoang [ 09/Aug/23 ] |
|
Another investigation from dai.ha when he read log https://jenkins.magnolia-cms.com/job/platform/job/dx-core/job/release%252F6.2/656/artifact/catalina-0ae32dad512b.log
Below is a error log when register [restEndpoint] definition [{*}registry{*}] with reference id: [registry] from module [definitions-rest-api]. This endpoint is used for checking definitions ready in LightModuleUtil. If registry endpoint do not register successfully, It will cause the error `Failed to load light module: bookshelf` 2023-08-09 02:36:04,821 ERROR .magnolia.rest.registry.EndpointDefinitionRegistry: Error happens when checking endpoint duplications. java.lang.NullPointerException: Cannot invoke "java.lang.Class.getAnnotation(java.lang.Class)" because the return value of "info.magnolia.rest.EndpointDefinition.getImplementationClass()" is null at info.magnolia.rest.registry.EndpointDefinitionRegistry.lambda$onRegister$1(EndpointDefinitionRegistry.java:129) ~[magnolia-rest-integration-2.2.22-SNAPSHOT.jar:?] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178) ~[?:?] at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[?:?] at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1602) ~[?:?] at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129) ~[?:?] at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[?:?] at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647) ~[?:?] at info.magnolia.rest.registry.EndpointDefinitionRegistry.onRegister(EndpointDefinitionRegistry.java:131) ~[magnolia-rest-integration-2.2.22-SNAPSHOT.jar:?] at info.magnolia.rest.registry.EndpointDefinitionRegistry.register(EndpointDefinitionRegistry.java:113) ~[magnolia-rest-integration-2.2.22-SNAPSHOT.jar:?] at info.magnolia.config.source.yaml.YamlConfigurationSource.loadAndRegister(YamlConfigurationSource.java:143) ~[magnolia-configuration-6.2-SNAPSHOT.jar:?] at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$LoadAndRegisterFunction.doWith(AbstractFileResourceConfigurationSource.java:274) ~[magnolia-configuration-6.2-SNAPSHOT.jar:?] at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource$LoadAndRegisterFunction.doWith(AbstractFileResourceConfigurationSource.java:270) ~[magnolia-configuration-6.2-SNAPSHOT.jar:?] at info.magnolia.resourceloader.util.VoidFunction.apply(VoidFunction.java:49) ~[magnolia-resource-loader-6.2-SNAPSHOT.jar:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) [?:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) [?:?] at java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357) [?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510) [?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) [?:?] at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) [?:?] at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) [?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) [?:?] at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) [?:?] at info.magnolia.config.source.yaml.AbstractFileResourceConfigurationSource.start(AbstractFileResourceConfigurationSource.java:151) [magnolia-configuration-6.2-SNAPSHOT.jar:?] at info.magnolia.config.source.yaml.YamlConfigurationSourceBuilder.bindTo(YamlConfigurationSourceBuilder.java:136) [magnolia-configuration-6.2-SNAPSHOT.jar:?] at info.magnolia.config.source.yaml.YamlConfigurationSourceBuilder.bindWithDefaults(YamlConfigurationSourceBuilder.java:143) [magnolia-configuration-6.2-SNAPSHOT.jar:?] at info.magnolia.rest.RestIntegrationModule.start(RestIntegrationModule.java:85) [magnolia-rest-integration-2.2.22-SNAPSHOT.jar:?] at info.magnolia.module.ModuleManagerImpl.startModule(ModuleManagerImpl.java:388) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.module.ModuleManagerImpl.startModules(ModuleManagerImpl.java:349) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.module.ui.ModuleManagerNullUI.onStartup(ModuleManagerNullUI.java:74) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.cms.beans.config.ConfigLoader.load(ConfigLoader.java:146) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.init.MagnoliaServletContextListener$1.doExec(MagnoliaServletContextListener.java:259) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:407) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.context.MgnlContext$VoidOp.exec(MgnlContext.java:404) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.context.MgnlContext.doInSystemContext(MgnlContext.java:378) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.init.MagnoliaServletContextListener.startServer(MagnoliaServletContextListener.java:256) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:182) [magnolia-core-6.2-SNAPSHOT.jar:?] at info.magnolia.init.MagnoliaServletContextListener.contextInitialized(MagnoliaServletContextListener.java:128) [magnolia-core-6.2-SNAPSHOT.jar:?] at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4768) [catalina.jar:9.0.62] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.62] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:9.0.62] at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) [catalina.jar:9.0.62] at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) [catalina.jar:9.0.62] at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1024) [catalina.jar:9.0.62] at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1911) [catalina.jar:9.0.62] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.62] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123) [?:?] at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:825) [catalina.jar:9.0.62] at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:475) [catalina.jar:9.0.62] at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618) [catalina.jar:9.0.62] at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.62] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946) [catalina.jar:9.0.62] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.62] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) [catalina.jar:9.0.62] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) [catalina.jar:9.0.62] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.62] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) [?:?] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) [catalina.jar:9.0.62] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.62] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.62] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) [catalina.jar:9.0.62] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.62] at org.apache.catalina.startup.Catalina.start(Catalina.java:772) [catalina.jar:9.0.62] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) [bootstrap.jar:9.0.62] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476) [bootstrap.jar:9.0.62] 2023-08-09 02:36:04,844 INFO agnolia.config.source.yaml.YamlConfigurationSource: Registered definition from YAML file [/definitions-rest-api/restEndpoints/registry.yaml]: [restEndpoint] definition [registry] with reference id: [registry] from module [definitions-rest-api] at [registry] 2023-08-09 02:36:04,844 WARN agnolia.config.source.yaml.YamlConfigurationSource: 0 major and 1 minor problems have been encountered |