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

Fix startup errors when digestAsync is enabled

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.10-HF53
    • Fix Version/s: 10.10-HF59
    • Component/s: S3
    • Release Notes Summary:
      Nuxeo starts correctly with S3 binary manager and digest async computation enabled.
    • Backlog priority:
      850
    • Team:
      PLATFORM
    • Sprint:
      nxplatform #54
    • Story Points:
      3

      Description

      Starting Nuxeo 10.10-HF53 Nuxeo fails to start when S3 binary manager and digestAsync are enabled.

      This is due to the fact that StreamService needs the transient store service that needs the S3 binary manager service that needs the repositories to be initialized whereas repositories are initialized after the stream service (circular dependency).

      This dependency is due to a support check on the repositories at initialization time, we should do that in a lazy way with a double lock mechanism.

      2021-12-20T06:36:45,473 ERROR [ComponentManager] Component service:org.nuxeo.runtime.stream.service notification of application started failed: null2021-12-20T06:36:45,473 ERROR [ComponentManager] Component service:org.nuxeo.runtime.stream.service notification of application started failed: nulljava.lang.NullPointerException: null at org.nuxeo.ecm.blob.s3.S3BlobStore.supportsAsyncDigest(S3BlobStore.java:198) ~[nuxeo-core-binarymanager-s3-10.10-HF54.jar:?] at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90) ~[?:1.8.0_312] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_312] at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1361) ~[?:1.8.0_312] at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) ~[?:1.8.0_312] at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499) ~[?:1.8.0_312] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486) ~[?:1.8.0_312] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_312] at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230) ~[?:1.8.0_312] at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196) ~[?:1.8.0_312] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_312] at java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:521) ~[?:1.8.0_312] at org.nuxeo.ecm.blob.s3.S3BlobStore.supportsAsyncDigest(S3BlobStore.java:194) ~[nuxeo-core-binarymanager-s3-10.10-HF54.jar:?] at org.nuxeo.ecm.blob.s3.S3BlobStore.<init>(S3BlobStore.java:160) ~[nuxeo-core-binarymanager-s3-10.10-HF54.jar:?] at org.nuxeo.ecm.blob.s3.S3BlobProvider.getBlobStore(S3BlobProvider.java:80) ~[nuxeo-core-binarymanager-s3-10.10-HF54.jar:?] at org.nuxeo.ecm.core.blob.BlobStoreBlobProvider.initialize(BlobStoreBlobProvider.java:60) ~[nuxeo-core-api-10.10-HF54.jar:?] at org.nuxeo.ecm.core.blob.BlobManagerComponent.getBlobProvider(BlobManagerComponent.java:209) ~[nuxeo-core-api-10.10-HF54.jar:?] at org.nuxeo.ecm.core.blob.BlobManagerComponent.getBlobProviderWithNamespace(BlobManagerComponent.java:236) ~[nuxeo-core-api-10.10-HF54.jar:?] at org.nuxeo.ecm.core.transientstore.keyvalueblob.KeyValueBlobTransientStore.getBlobProvider(KeyValueBlobTransientStore.java:212) ~[nuxeo-core-cache-10.10-HF53.jar:?] at org.nuxeo.ecm.core.transientstore.keyvalueblob.KeyValueBlobTransientStore.init(KeyValueBlobTransientStore.java:203) ~[nuxeo-core-cache-10.10-HF53.jar:?] at org.nuxeo.ecm.core.transientstore.TransientStorageComponent.getStore(TransientStorageComponent.java:73) ~[nuxeo-core-cache-10.10-HF53.jar:?] at org.nuxeo.ecm.core.transientstore.computation.TransientStoreOverflowRecordFilter.getTransientStore(TransientStoreOverflowRecordFilter.java:52) ~[nuxeo-core-cache-10.10-HF53.jar:?] at org.nuxeo.ecm.core.transientstore.computation.TransientStoreOverflowRecordFilter.init(TransientStoreOverflowRecordFilter.java:48) ~[nuxeo-core-cache-10.10-HF53.jar:?] at org.nuxeo.runtime.stream.StreamProcessorDescriptor$FilterDescriptor.getFilter(StreamProcessorDescriptor.java:95) ~[nuxeo-runtime-stream-10.10-HF32.jar:?] at org.nuxeo.runtime.stream.StreamServiceImpl.lambda$getSettings$5(StreamServiceImpl.java:208) ~[nuxeo-runtime-stream-10.10-HF32.jar:?] at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_312] at org.nuxeo.runtime.stream.StreamServiceImpl.getSettings(StreamServiceImpl.java:208) ~[nuxeo-runtime-stream-10.10-HF32.jar:?] at org.nuxeo.runtime.stream.StreamServiceImpl.initProcessor(StreamServiceImpl.java:182) ~[nuxeo-runtime-stream-10.10-HF32.jar:?] at java.util.ArrayList.forEach(ArrayList.java:1259) ~[?:1.8.0_312] at org.nuxeo.runtime.stream.StreamServiceImpl.start(StreamServiceImpl.java:160) ~[nuxeo-runtime-stream-10.10-HF32.jar:?] at org.nuxeo.runtime.model.impl.RegistrationInfoImpl.start(RegistrationInfoImpl.java:381) [nuxeo-runtime-10.10-HF45.jar:?] at org.nuxeo.runtime.model.impl.ComponentManagerImpl.startComponent(ComponentManagerImpl.java:718) [nuxeo-runtime-10.10-HF45.jar:?] at org.nuxeo.runtime.model.impl.ComponentManagerImpl.startComponents(ComponentManagerImpl.java:700) [nuxeo-runtime-10.10-HF45.jar:?] at org.nuxeo.runtime.model.impl.ComponentManagerImpl.start(ComponentManagerImpl.java:801) [nuxeo-runtime-10.10-HF45.jar:?] at org.nuxeo.runtime.osgi.OSGiRuntimeService.startComponents(OSGiRuntimeService.java:447) [nuxeo-runtime-10.10-HF45.jar:?] at org.nuxeo.runtime.osgi.OSGiRuntimeService.frameworkEvent(OSGiRuntimeService.java:462) [nuxeo-runtime-10.10-HF45.jar:?] at org.nuxeo.osgi.OSGiAdapter.fireFrameworkEvent(OSGiAdapter.java:223) [nuxeo-runtime-osgi-10.10-HF52.jar:?] at org.nuxeo.osgi.application.loader.FrameworkLoader.doStart(FrameworkLoader.java:226) [nuxeo-runtime-osgi-10.10-HF52.jar:?] at org.nuxeo.osgi.application.loader.FrameworkLoader.start(FrameworkLoader.java:125) [nuxeo-runtime-osgi-10.10-HF52.jar:?] at org.nuxeo.runtime.deployment.NuxeoStarter.start(NuxeoStarter.java:124) [nuxeo-runtime-deploy-10.10.jar:?] at org.nuxeo.runtime.deployment.NuxeoStarter.contextInitialized(NuxeoStarter.java:93) [nuxeo-runtime-deploy-10.10.jar:?] at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4768) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:690) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1889) [catalina-9.0.54.jar:9.0.54] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_312] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_312] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util-9.0.54.jar:9.0.54] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) [?:1.8.0_312] at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:583) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) [catalina-9.0.54.jar:9.0.54] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_312] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util-9.0.54.jar:9.0.54] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) [?:1.8.0_312] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina-9.0.54.jar:9.0.54] at org.apache.catalina.startup.Catalina.start(Catalina.java:772) [catalina-9.0.54.jar:9.0.54] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_312] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_312] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_312] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_312] at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) [bootstrap-9.0.54.jar:9.0.54] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476) [bootstrap-9.0.54.jar:9.0.54]
      

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: