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

Slave node does not work as expected after initializing/deploying a portlet that is not available on the master node

    Details

      Description

      Description
      The deployed portlet must also be utilizing the scheduler.

      While a slave node deploys/initializes a portlet (with a scheduler) that is not available on the master node, the portal does not run as expected.

      The steps to reproduce displays a simple case where the portal is not working as expected.

      Steps to Reproduce

      1. Prepare two Liferay instances with portal-125
      2. Setup a cluster between the two instances
      3. Startup Node1
      4. Startup Node2
      5. Install Akismet portlet from the marketplace on Node2
        • Errors should be observed:
          ...
          Caused by: com.liferay.portal.kernel.scheduler.SchedulerException: Unable to retrieve memory clustered job from master
          ...
          
      6. Navigate the portal in Node 2
        1. Navigate to Control Panel --> Server Administration

      Expected Results: The server administration page loads properly.
      Actual Results: The server administration page does not load properly.


      Additional Information
      The issue observed is caused by the schedulerException that is thrown during the initialization/deployment of the portlet on the slave node.

      The schedulerException was introduced by LPS-66858, which introduced a change where slave nodes retrieved scheduledJobs from the master node. For this case, since the portlet is not deployed on the master node, there is no scheduledJob to retrieve.

      The schedulerException is not observed if the Akismet portlet is first deployed on the master node.

      Notes for QA Testing

      There are actually 8 test cases, and they vary on what happens in Step 5.

      1. Install portlet on Node1, then install on Node2
      2. Install portlet on Node2, then install on Node1
      3. Install portlet on Node1, then shutdown Node1
      4. Install portlet on Node2, then shutdown Node2
      5. Install portlet on Node1, then install on Node2, then shutdown Node1
      6. Install portlet on Node1, then install on Node2, then shutdown Node2
      7. Install portlet on Node2, then install on Node1, then shutdown Node1
      8. Install portlet on Node2, then install on Node1, then shutdown Node2

      Varations 1 and 2 simulate a standard deployment. Varations 3 and 4 simulate a rollback. Variations 5-8 provide a smoke test around whether this implementation (and any future implementation) is fault tolerant.

      For variations 1-4, we need to make sure that there are no errors. For variations 5-8, we need to make sure that after shutting down the node, that there are no errors AND the scheduled job runs as expected.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Days since last comment:
                  2 years, 21 weeks, 1 day ago

                  Packages

                  Version Package
                  6.2.X EE
                  7.0.0 DXP FP12
                  7.0.0 DXP SP2
                  7.0.3 CE GA4
                  Master