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

Nuxeo 2021 (zip package) + Mongo + Windows => Fails to start

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2021.1
    • Fix Version/s: 2021.12
    • Component/s: Launcher
    • Release Notes Summary:
      The MongoDB check at startup is fixed with a better path parsing.
    • Backlog priority:
      800
    • Sprint:
      nxplatform #48
    • Story Points:
      2

      Description

      • Environment: Windows (Windows 10 Pro (v10.0.19041))
      • Nuxeo 2021.1 installed from the zip tomcat distribution (not Docker)
      • Mongo Version: 4.4
      Mongo Build Info: ("ctx":"initandlisten","msg":"Build Info","attr":{"buildInfo":{"version":"4.4.0","gitVersion":"563487e100c4215e2dce98d0af2a6a5a2d67c5cf","modules":[],"allocator":"tcmalloc","environment":{"distmod":"windows","distarch":"x86_64","target_arch":"x86_64"}}}})
      
      • Java Version: Oracle JDK 11.0.10
      Java Home: C:\Program Files\Java\jdk-11.0.10
      java -version Output: C:\Nuxeo\Genus\demos\KAH\instance\bin>java -version
      java version "11.0.10" 2021-01-19 LTS
      Java(TM) SE Runtime Environment 18.9 (build 11.0.10+8-LTS-162)
      Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.10+8-LTS-162, mixed mode)
      
      • Relevant Nuxeo.conf info (everything mentioning mongo):
      nuxeo.templates=mongodb,default,kah-demo-package,kah-demo-s3-config
      nuxeo.mongodb.dbname=kah
      

      The logs after starting nuxeo using...

      nuxeoctl -d org.nuxeo.launcher.config — console
      

      ... are attached to this ticket. The error is a ClassNotFoundException: org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker:

      Exception in thread "NuxeoProcessThread-0" org.nuxeo.launcher.NuxeoLauncherException: Could not run configuration: Unable to check configuration for backing service mongodb
              at org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1673)
      . . .
      Caused by: java.lang.ClassNotFoundException: org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker
              at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
      . . .
      

      Notice the same occurred on 2 others Windows machine

        Attachments

        1. console.txt
          20 kB
        2. log.txt
          10 kB
        3. showconf.txt
          21 kB

          Issue Links

            Activity

            Hide
            targuillere Thibaud Arguillere added a comment -

            Notice : They did the same testing without their custom templates (which, anyway, were not related to Mongo or other) and the issue is the same.

            Show
            targuillere Thibaud Arguillere added a comment - Notice : They did the same testing without their custom templates (which, anyway, were not related to Mongo or other) and the issue is the same.
            Hide
            rrick Robert Rick added a comment -

            Hi all, I'm the one that's running into this issue. Thibaud was kind enough to create this ticket for me.

            On another note, I spun up a AWS EC2 instance with a new install of Windows Server 2019 Datacenter (v10.0.17763) and installed MongoDB, and Oracle JDK 11.0.10.

            I then extracted the Nuxeo LTS 2021 zip distrib to C:\Nuxeo, enabled the mongodb template, set my environment and path, and ran "nuxeoctl console".

            I ran into the same error. I also tried running it with AdoptOpenJDK 11 and received the same error as well.

            Show
            rrick Robert Rick added a comment - Hi all, I'm the one that's running into this issue. Thibaud was kind enough to create this ticket for me. On another note, I spun up a AWS EC2 instance with a new install of Windows Server 2019 Datacenter (v10.0.17763) and installed MongoDB, and Oracle JDK 11.0.10. I then extracted the Nuxeo LTS 2021 zip distrib to C:\Nuxeo, enabled the mongodb template, set my environment and path, and ran "nuxeoctl console". I ran into the same error. I also tried running it with AdoptOpenJDK 11 and received the same error as well.
            Hide
            targuillere Thibaud Arguillere added a comment -

            Added the result of nuxeoctl showconf

             

            Important: The templates order in the ticket is mongodb then default, but it's the result of some testing, it fails in the same manner with the regular order (default,mongodb)

            Show
            targuillere Thibaud Arguillere added a comment - Added the result of nuxeoctl showconf   Important: The templates order in the ticket is mongodb  then default , but it's the result of some testing, it fails in the same manner with the regular order ( default,mongodb )
            Hide
            targuillere Thibaud Arguillere added a comment -

            Robert Rick, the result of showconf shows this:

            mongodb.check.class=org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker

            It likely comes from the mongodb template but I'm wondering if you also set it up in your nuxeo.conf ?

             

             

            Show
            targuillere Thibaud Arguillere added a comment - Robert Rick , the result of showconf shows this: mongodb.check.class=org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker It likely comes from the mongodb template but I'm wondering if you also set it up in your nuxeo.conf ?    
            Hide
            rrick Robert Rick added a comment -

            That came from the template I think. I don't see it set anywhere in my conf.

            To confirm: templates/mongodb/nuxeo.defaults

            ## DO NOT EDIT THIS FILE, USE nuxeo.conf  ##
            nuxeo.template.includes=default
            mongodb.target=.
            
            nuxeo.db.type=mongodb
            nuxeo.mongodb.server=localhost:27017
            #nuxeo.mongodb.server=mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
            nuxeo.mongodb.dbname=nuxeo
            # TLS/SSL configuration
            nuxeo.mongodb.ssl=
            nuxeo.mongodb.truststore.path=
            nuxeo.mongodb.truststore.password=
            nuxeo.mongodb.truststore.type=
            nuxeo.mongodb.keystore.path=
            nuxeo.mongodb.keystore.password=
            nuxeo.mongodb.keystore.type=
            
            nuxeo.quartz.enable=true
            
            ## MongoDB directories activation
            nuxeo.mongodb.directories.enabled=true
            
            ## Cache Configuration ##
            nuxeo.dbs.cache.enabled=true
            nuxeo.dbs.cache.maxSize=1000
            nuxeo.dbs.cache.concurrencyLevel=10
            nuxeo.dbs.cache.ttl=10
            
            ## Startup checks configuration
            mongodb.check.classpath=nxserver/lib:${nuxeo.home}/nxserver/bundles/nuxeo-{core-storage,runtime}-mongodb-*.jar
            mongodb.check.class=org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker
            nuxeo.mongodb.check.timeout=5
            
            ## KeyValue Store
            nuxeo.keyvalue.provider=mongodb
            
            ## Make sure we use repository lockmanager
            nuxeo.lock.manager=mongodb
            
            
            Show
            rrick Robert Rick added a comment - That came from the template I think. I don't see it set anywhere in my conf. To confirm: templates/mongodb/nuxeo.defaults ## DO NOT EDIT THIS FILE, USE nuxeo.conf ## nuxeo.template.includes= default mongodb.target=. nuxeo.db.type=mongodb nuxeo.mongodb.server=localhost:27017 #nuxeo.mongodb.server=mongodb: //[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] nuxeo.mongodb.dbname=nuxeo # TLS/SSL configuration nuxeo.mongodb.ssl= nuxeo.mongodb.truststore.path= nuxeo.mongodb.truststore.password= nuxeo.mongodb.truststore.type= nuxeo.mongodb.keystore.path= nuxeo.mongodb.keystore.password= nuxeo.mongodb.keystore.type= nuxeo.quartz.enable= true ## MongoDB directories activation nuxeo.mongodb.directories.enabled= true ## Cache Configuration ## nuxeo.dbs.cache.enabled= true nuxeo.dbs.cache.maxSize=1000 nuxeo.dbs.cache.concurrencyLevel=10 nuxeo.dbs.cache.ttl=10 ## Startup checks configuration mongodb.check.classpath=nxserver/lib:${nuxeo.home}/nxserver/bundles/nuxeo-{core-storage,runtime}-mongodb-*.jar mongodb.check.class=org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker nuxeo.mongodb.check.timeout=5 ## KeyValue Store nuxeo.keyvalue.provider=mongodb ## Make sure we use repository lockmanager nuxeo.lock.manager=mongodb
            Hide
            kleturc Kevin Leturc added a comment -

            This should be tested with a recent version of LTS 2021, at least the 2021.4, see NXP-30418 which should have fixed the issue.

            Show
            kleturc Kevin Leturc added a comment - This should be tested with a recent version of LTS 2021, at least the 2021.4, see NXP-30418 which should have fixed the issue.
            Hide
            rrick Robert Rick added a comment -

            Hi Kevin,

            Fresh Install ZIP with HF10 and MongoDB Configured:

            C:\Nuxeo\TF\instance\bin>nuxeoctl mp-list
            Found NUXEO_CONF = C:\Nuxeo\TF\instance\bin\nuxeo.conf
            Found JAVA_HOME = C:\Program Files\Java\jdk-11.0.10
            Using JAVA = C:\Program Files\Java\jdk-11.0.10\bin\java.exe
                    1 file(s) copied.
            
            C:\Nuxeo\TF\instance\bin>"C:\Program Files\Java\jdk-11.0.10\bin\java.exe"  "-Xbootclasspath/a:C:\Program Files\Java\jdk-11.0.10\lib\tools.jar" -Dlauncher.java.opts="-XX:InitialRAMPercentage=3 -XX:MaxRAMPercentage=25 -Dfile.encoding=UTF-8 -Dmail.mime.decodeparameters=true -Dnet.sf.ehcache.skipUpdateCheck=true -Djava.util.Arrays.useLegacyMergeSort=true -Dsun.net.http.retryPost=false" -Dnuxeo.home="C:\Nuxeo\TF\instance" -Dnuxeo.conf="C:\Nuxeo\TF\instance\bin\nuxeo.conf" -Dnuxeo.log.dir="C:\Nuxeo\TF\instance\log" -Dlog.id="-Mon11012021_21594094" -jar "C:\Users\robertr\AppData\Local\Temp\nuxeo-launcher-30730.jar" mp-list
            Nuxeo home:          C:\Nuxeo\TF\instance
            Nuxeo configuration: C:\Nuxeo\TF\instance\bin\nuxeo.conf
            Include template: C:\Nuxeo\TF\instance\templates\common-base
            Include template: C:\Nuxeo\TF\instance\templates\common
            Include template: C:\Nuxeo\TF\instance\templates\default
            Include template: C:\Nuxeo\TF\instance\templates\mongodb
            Local packages:
            hotfix     started      nuxeo-2021-HF01 (id: nuxeo-2021-HF01-1.0.0)
            hotfix     started      nuxeo-2021-HF02 (id: nuxeo-2021-HF02-1.0.0)
            hotfix     started      nuxeo-2021-HF03 (id: nuxeo-2021-HF03-1.0.0)
            hotfix     started      nuxeo-2021-HF04 (id: nuxeo-2021-HF04-1.0.0)
            hotfix     started      nuxeo-2021-HF05 (id: nuxeo-2021-HF05-1.0.0)
            hotfix     started      nuxeo-2021-HF06 (id: nuxeo-2021-HF06-1.0.0)
            hotfix     started      nuxeo-2021-HF07 (id: nuxeo-2021-HF07-1.0.3)
            hotfix     started      nuxeo-2021-HF08 (id: nuxeo-2021-HF08-1.0.0)
            hotfix     started      nuxeo-2021-HF09 (id: nuxeo-2021-HF09-1.0.0)
            hotfix     started      nuxeo-2021-HF10 (id: nuxeo-2021-HF10-1.0.0)
            
            
            C:\Nuxeo\TF\instance\bin>nuxeoctl console
            Found NUXEO_CONF = C:\Nuxeo\TF\instance\bin\nuxeo.conf
            Found JAVA_HOME = C:\Program Files\Java\jdk-11.0.10
            Using JAVA = C:\Program Files\Java\jdk-11.0.10\bin\java.exe
                    1 file(s) copied.
            
            C:\Nuxeo\TF\instance\bin>"C:\Program Files\Java\jdk-11.0.10\bin\java.exe"  "-Xbootclasspath/a:C:\Program Files\Java\jdk-11.0.10\lib\tools.jar" -Dlauncher.java.opts="-XX:InitialRAMPercentage=3 -XX:MaxRAMPercentage=25 -Dfile.encoding=UTF-8 -Dmail.mime.decodeparameters=true -Dnet.sf.ehcache.skipUpdateCheck=true -Djava.util.Arrays.useLegacyMergeSort=true -Dsun.net.http.retryPost=false" -Dnuxeo.home="C:\Nuxeo\TF\instance" -Dnuxeo.conf="C:\Nuxeo\TF\instance\bin\nuxeo.conf" -Dnuxeo.log.dir="C:\Nuxeo\TF\instance\log" -Dlog.id="-Mon11012021_21594945" -jar "C:\Users\robertr\AppData\Local\Temp\nuxeo-launcher-7845.jar" console
            Nuxeo home:          C:\Nuxeo\TF\instance
            Nuxeo configuration: C:\Nuxeo\TF\instance\bin\nuxeo.conf
            Include template: C:\Nuxeo\TF\instance\templates\common-base
            Include template: C:\Nuxeo\TF\instance\templates\common
            Include template: C:\Nuxeo\TF\instance\templates\default
            Include template: C:\Nuxeo\TF\instance\templates\mongodb
            Configuration files generation (nuxeo.force.generation=true)...
            FreeMarker variables: ignored 'java.version.date' conflicting with 'java.version'
            Configuration files generated.
            Exception in thread "NuxeoProcessThread-0" org.nuxeo.launcher.NuxeoLauncherException: Could not run configuration: Unable to check configuration for backing service: mongodb
                    at org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1695)
                    at org.nuxeo.launcher.NuxeoLauncher.doConsole(NuxeoLauncher.java:1642)
                    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
                    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
                    at java.base/java.lang.Thread.run(Thread.java:834)
            Caused by: org.nuxeo.launcher.config.ConfigurationException: Unable to check configuration for backing service: mongodb
                    at org.nuxeo.launcher.config.ConfigurationChecker.instantiateBackingCheckers(ConfigurationChecker.java:378)
                    at org.nuxeo.launcher.config.ConfigurationChecker.checkBackingServices(ConfigurationChecker.java:320)
                    at org.nuxeo.launcher.config.ConfigurationChecker.verify(ConfigurationChecker.java:122)
                    at org.nuxeo.launcher.config.ConfigurationGenerator.verifyInstallation(ConfigurationGenerator.java:540)
                    at org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1666)
                    ... 4 more
            Caused by: java.lang.ClassNotFoundException: org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker
                    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
                    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
                    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
                    at java.base/java.lang.Class.forName0(Native Method)
                    at java.base/java.lang.Class.forName(Class.java:398)
                    at org.nuxeo.launcher.config.ConfigurationChecker.instantiateBackingCheckers(ConfigurationChecker.java:374)
                    ... 8 more
            
            
            
            Show
            rrick Robert Rick added a comment - Hi Kevin, Fresh Install ZIP with HF10 and MongoDB Configured: C:\Nuxeo\TF\instance\bin>nuxeoctl mp-list Found NUXEO_CONF = C:\Nuxeo\TF\instance\bin\nuxeo.conf Found JAVA_HOME = C:\Program Files\Java\jdk-11.0.10 Using JAVA = C:\Program Files\Java\jdk-11.0.10\bin\java.exe 1 file(s) copied. C:\Nuxeo\TF\instance\bin> "C:\Program Files\Java\jdk-11.0.10\bin\java.exe" "-Xbootclasspath/a:C:\Program Files\Java\jdk-11.0.10\lib\tools.jar" -Dlauncher.java.opts= "-XX:InitialRAMPercentage=3 -XX:MaxRAMPercentage=25 -Dfile.encoding=UTF-8 -Dmail.mime.decodeparameters= true -Dnet.sf.ehcache.skipUpdateCheck= true -Djava.util.Arrays.useLegacyMergeSort= true -Dsun.net.http.retryPost= false " -Dnuxeo.home= "C:\Nuxeo\TF\instance" -Dnuxeo.conf= "C:\Nuxeo\TF\instance\bin\nuxeo.conf" -Dnuxeo.log.dir= "C:\Nuxeo\TF\instance\log" -Dlog.id= "-Mon11012021_21594094" -jar "C:\Users\robertr\AppData\Local\Temp\nuxeo-launcher-30730.jar" mp-list Nuxeo home: C:\Nuxeo\TF\instance Nuxeo configuration: C:\Nuxeo\TF\instance\bin\nuxeo.conf Include template: C:\Nuxeo\TF\instance\templates\common-base Include template: C:\Nuxeo\TF\instance\templates\common Include template: C:\Nuxeo\TF\instance\templates\ default Include template: C:\Nuxeo\TF\instance\templates\mongodb Local packages: hotfix started nuxeo-2021-HF01 (id: nuxeo-2021-HF01-1.0.0) hotfix started nuxeo-2021-HF02 (id: nuxeo-2021-HF02-1.0.0) hotfix started nuxeo-2021-HF03 (id: nuxeo-2021-HF03-1.0.0) hotfix started nuxeo-2021-HF04 (id: nuxeo-2021-HF04-1.0.0) hotfix started nuxeo-2021-HF05 (id: nuxeo-2021-HF05-1.0.0) hotfix started nuxeo-2021-HF06 (id: nuxeo-2021-HF06-1.0.0) hotfix started nuxeo-2021-HF07 (id: nuxeo-2021-HF07-1.0.3) hotfix started nuxeo-2021-HF08 (id: nuxeo-2021-HF08-1.0.0) hotfix started nuxeo-2021-HF09 (id: nuxeo-2021-HF09-1.0.0) hotfix started nuxeo-2021-HF10 (id: nuxeo-2021-HF10-1.0.0) C:\Nuxeo\TF\instance\bin>nuxeoctl console Found NUXEO_CONF = C:\Nuxeo\TF\instance\bin\nuxeo.conf Found JAVA_HOME = C:\Program Files\Java\jdk-11.0.10 Using JAVA = C:\Program Files\Java\jdk-11.0.10\bin\java.exe 1 file(s) copied. C:\Nuxeo\TF\instance\bin> "C:\Program Files\Java\jdk-11.0.10\bin\java.exe" "-Xbootclasspath/a:C:\Program Files\Java\jdk-11.0.10\lib\tools.jar" -Dlauncher.java.opts= "-XX:InitialRAMPercentage=3 -XX:MaxRAMPercentage=25 -Dfile.encoding=UTF-8 -Dmail.mime.decodeparameters= true -Dnet.sf.ehcache.skipUpdateCheck= true -Djava.util.Arrays.useLegacyMergeSort= true -Dsun.net.http.retryPost= false " -Dnuxeo.home= "C:\Nuxeo\TF\instance" -Dnuxeo.conf= "C:\Nuxeo\TF\instance\bin\nuxeo.conf" -Dnuxeo.log.dir= "C:\Nuxeo\TF\instance\log" -Dlog.id= "-Mon11012021_21594945" -jar "C:\Users\robertr\AppData\Local\Temp\nuxeo-launcher-7845.jar" console Nuxeo home: C:\Nuxeo\TF\instance Nuxeo configuration: C:\Nuxeo\TF\instance\bin\nuxeo.conf Include template: C:\Nuxeo\TF\instance\templates\common-base Include template: C:\Nuxeo\TF\instance\templates\common Include template: C:\Nuxeo\TF\instance\templates\ default Include template: C:\Nuxeo\TF\instance\templates\mongodb Configuration files generation (nuxeo.force.generation= true )... FreeMarker variables: ignored 'java.version.date' conflicting with 'java.version' Configuration files generated. Exception in thread "NuxeoProcessThread-0" org.nuxeo.launcher.NuxeoLauncherException: Could not run configuration: Unable to check configuration for backing service: mongodb at org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1695) at org.nuxeo.launcher.NuxeoLauncher.doConsole(NuxeoLauncher.java:1642) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang. Thread .run( Thread .java:834) Caused by: org.nuxeo.launcher.config.ConfigurationException: Unable to check configuration for backing service: mongodb at org.nuxeo.launcher.config.ConfigurationChecker.instantiateBackingCheckers(ConfigurationChecker.java:378) at org.nuxeo.launcher.config.ConfigurationChecker.checkBackingServices(ConfigurationChecker.java:320) at org.nuxeo.launcher.config.ConfigurationChecker.verify(ConfigurationChecker.java:122) at org.nuxeo.launcher.config.ConfigurationGenerator.verifyInstallation(ConfigurationGenerator.java:540) at org.nuxeo.launcher.NuxeoLauncher.doStart(NuxeoLauncher.java:1666) ... 4 more Caused by: java.lang.ClassNotFoundException: org.nuxeo.ecm.core.storage.mongodb.MongoDBChecker at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471) at java.base/java.lang. ClassLoader .loadClass( ClassLoader .java:588) at java.base/java.lang. ClassLoader .loadClass( ClassLoader .java:521) at java.base/java.lang. Class .forName0(Native Method) at java.base/java.lang. Class .forName( Class .java:398) at org.nuxeo.launcher.config.ConfigurationChecker.instantiateBackingCheckers(ConfigurationChecker.java:374) ... 8 more
            Hide
            hudson Jenkins added a comment -

            NOT_BUILT: Integrated in nuxeo » lts » nuxeo » 2021 #158
            NXP-30279: Fix checker classpath split to not take into account the Windows drive (kevinleturc: 643a7c72f871881ef539923a1b2f4f5621f99abd)

            Show
            hudson Jenkins added a comment - NOT_BUILT: Integrated in nuxeo » lts » nuxeo » 2021 #158 NXP-30279 : Fix checker classpath split to not take into account the Windows drive (kevinleturc: 643a7c72f871881ef539923a1b2f4f5621f99abd )

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: