Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-60763

One node startup fails with com.liferay.portal.kernel.scheduler.SchedulerException: Unable to initialize scheduler

    Details

      Description

      Description

      With a 2-node cluster, after shutting down one node, it cannot start up.

      Reproduction Steps

      1. Set up a clustered environment with two nodes. Each node has Liferay 6.2 EE SP13 Tomcat bundle connecting MySQL database. Remove all packaged portlets except for sync-web portlet
      2. Use the following portal-ext.properties:
        cluster.link.enabled=true
        lucene.replicate.write=true
        dl.store.impl=com.liferay.portlet.documentlibrary.store.DBStore
        
      3. Start up Node 1 and deploy cluster license
      4. After a complete startup, start up Node 2 and deploy cluster license
      5. Make sure Liferay cluster is working
      6. Shut down Node 2
      7. Start Node 2

      Results of Testing

      Actual Result: Node 2 fails to start up due to the following error

      04:13:38,432 ERROR [localhost-startStop-1][MainServlet:237] com.liferay.portal.kernel.events.ActionException: 
      
      com.liferay.portal.kernel.scheduler.SchedulerException: Unable to initialize scheduler
      com.liferay.portal.kernel.events.ActionException: com.liferay.portal.kernel.scheduler.SchedulerException: Unable to initialize 
      
      scheduler
          at com.liferay.portal.events.StartupAction.run(StartupAction.java:80)
          at com.liferay.portal.servlet.MainServlet.processStartupEvents(MainServlet.java:1272)
          at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:234)
          at javax.servlet.GenericServlet.init(GenericServlet.java:158)
          at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1284)
          at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1197)
          at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
          at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5266)
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5554)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
          at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
          at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
          at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:677)
          at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1912)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
          at java.util.concurrent.FutureTask.run(FutureTask.java:262)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:745)
      Caused by: com.liferay.portal.kernel.scheduler.SchedulerException: Unable to initialize scheduler
          at com.liferay.portal.scheduler.ClusterSchedulerEngine.initialize(ClusterSchedulerEngine.java:245)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:606)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
          at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:48)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:56)
          at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
          at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
          at com.sun.proxy.$Proxy280.initialize(Unknown Source)
          at com.liferay.portal.scheduler.SchedulerEngineHelperImpl.initialize(SchedulerEngineHelperImpl.java:574)
          at com.liferay.portal.kernel.scheduler.SchedulerEngineHelperUtil.initialize(SchedulerEngineHelperUtil.java:237)
          at com.liferay.portal.events.StartupAction.doRun(StartupAction.java:223)
          at com.liferay.portal.ee.license.StartupAction.doRun(Unknown Source)
          at com.liferay.portal.events.StartupAction.run(StartupAction.java:74)
          ... 19 more
      Caused by: java.lang.NullPointerException
          at com.liferay.portal.scheduler.ClusterSchedulerEngine.initMemoryClusteredJobs(ClusterSchedulerEngine.java:645)
          at com.liferay.portal.scheduler.ClusterSchedulerEngine.initialize(ClusterSchedulerEngine.java:241)
          ... 53 more
      

      *Expected Result: * Node 2 should start up successfully

      Note

      1. This issue is only reproduce with Liferay 6.2 SP 13/14 bundle with the packaged sync-web portlet when Node 1 is active for the first time.
      2. If Node 1 is shut down and restart, node 2 can start up too.
      3. If deploying the latest sync-web portlet on both nodes, the issue cannot be reproduced.
      4. Cannot reproduce this on ee-6.2.x or trunk

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                1 year, 32 weeks, 5 days ago

                Packages

                Version Package