Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-32480

Fix HF build for 2023.11

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 2023.11
    • Fix Version/s: 2023.x
    • Component/s: Core

      Description

      Since NXP-32453 the HF build for nuxeo-lts 2023 doesn't succeed anymore.

      The pipeline is failing during the test of the freshly build HF image, more precisely during the test which start a Nuxeo container.
      We can observe this error in the container logs:

      2024-04-09 15:39:23 SEVERE [main] org.apache.catalina.startup.Catalina.start The required Server component failed to start so Tomcat is unable to start.
      	org.apache.catalina.LifecycleException: A child container failed during start
      		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:885)
      		at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:248)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
      		at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
      		at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:925)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
      		at org.apache.catalina.startup.Catalina.start(Catalina.java:735)
      		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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
      		at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
      	Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
      		at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
      		at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
      		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:873)
      		... 13 more
      	Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
      		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:419)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:186)
      		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
      		at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
      		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      		at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
      		at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
      		at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
      		... 13 more
      	Caused by: java.lang.RuntimeException: Failed to handle event
      		at org.nuxeo.runtime.tomcat.NuxeoDeployer.preprocess(NuxeoDeployer.java:117)
      		at org.nuxeo.runtime.tomcat.NuxeoDeployer.lifecycleEvent(NuxeoDeployer.java:68)
      		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
      		at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:170)
      		... 19 more
      	Caused by: java.lang.reflect.InvocationTargetException
      		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.nuxeo.runtime.tomcat.NuxeoDeployer.preprocess(NuxeoDeployer.java:113)
      		... 23 more
      	Caused by: java.lang.NoClassDefFoundError: net/jodah/failsafe/Policy
      		at org.nuxeo.launcher.config.ConfigurationGenerator.<init>(ConfigurationGenerator.java:175)
      		at org.nuxeo.launcher.config.ConfigurationGenerator$Builder.build(ConfigurationGenerator.java:791)
      		at org.nuxeo.runtime.deployment.preprocessor.DeploymentPreprocessor.initContextProperties(DeploymentPreprocessor.java:136)
      		at org.nuxeo.runtime.deployment.preprocessor.DeploymentPreprocessor.init(DeploymentPreprocessor.java:114)
      		at org.nuxeo.runtime.deployment.preprocessor.DeploymentPreprocessor.init(DeploymentPreprocessor.java:95)
      		at org.nuxeo.runtime.deployment.preprocessor.DeploymentPreprocessor.main(DeploymentPreprocessor.java:595)
      		... 28 more
      	Caused by: java.lang.ClassNotFoundException: net.jodah.failsafe.Policy
      		at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
      		at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
      		at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
      		... 34 more
      

      The new failsafe lib isn't present in the Nuxeo server, nor in the built HF package:

      ➜ docker run -it --rm --platform=linux/amd64 docker.platform.dev.nuxeo.com/nuxeo/nuxeo-hf:2023.11.1 bash -c 'ls -lh /opt/nuxeo/server/nxserver/lib/failsafe*'
      ENTRYPOINT: Initialize server configuration without /etc/nuxeo/nuxeo.conf
      ENTRYPOINT: Move /opt/nuxeo/server/bin/nuxeo.conf to /etc/nuxeo/nuxeo.conf
      ENTRYPOINT: Append required properties to /etc/nuxeo/nuxeo.conf
      nuxeo.data.dir=/var/lib/nuxeo
      nuxeo.log.dir=/var/log/nuxeo
      nuxeo.tmp.dir=/tmp
      nuxeo.pid.dir=/var/pid/nuxeo
      # Set java.io.tmpdir = ${nuxeo.tmp.dir}
      launcher.override.java.tmpdir=true
      ENTRYPOINT: Append properties from /etc/nuxeo/conf.d/00-docker.conf to /etc/nuxeo/nuxeo.conf
      ENTRYPOINT: Looking for shell scripts in /docker-entrypoint-initnuxeo.d
      -rw-rw-r-- 1 nuxeo root 85K Jun 17  2023 /opt/nuxeo/server/nxserver/lib/failsafe-1.1.1.jar
      

      As this library is also needed in the nuxeo-launcher module, we suspect this is the culprit of not having the lib in the HF package.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: