[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:
Relates
relates to MAGNOLIA-9031 [DX-core] Definitions app should show... Closed
relates to MGNLTEST-415 Disabled tests should skip setting up... Open
duplicate
duplicates MGNLCE-361 SPA tests are unstable Closed
Sub-Tasks:
Key
Summary
Type
Status
Assignee
MGNLTEST-431 Set up ui test ce, dx-core to reprodu... Sub-task Closed Oanh Thai Hoang  
MGNLTEST-432 Implement Sub-task Closed Oanh Thai Hoang  
MGNLTEST-433 Review Sub-task Closed Dai Ha  
MGNLTEST-434 QA by jenkin Sub-task Completed Dai Ha  
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: DeveloperX
Work Started:
Approved:
Yes

 Description   

it.info.magnolia.functionaltests.ContentTypeFunctionalTests
it.info.magnolia.functionaltests.PagesSpaAngularFunctionalTests
it.info.magnolia.functionaltests.PagesSpaReactFunctionalTests
it.info.magnolia.functionaltests.PagesSpaReactSSRFunctionalTests
it.info.magnolia.functionaltests.PagesSpaVueFunctionalTests
it.info.magnolia.functionaltests.PagesSpaVueSSRFunctionalTests

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 ]

dai.ha 

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 MAGNOLIA-9031). We have some classes from admincentral-legacy (which might not be bundled in 6.3)

[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 
Generated at Mon Feb 12 07:48:52 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.