Type: Regression Bug
Affects Version/s: 6.2.X EE
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
- Prepare two Liferay instances with portal-125
- Setup a cluster between the two instances
- Startup Node1
- Startup Node2
- Install Akismet portlet from the marketplace on Node2
- Errors should be observed:
- Navigate the portal in Node 2
- Navigate to Control Panel --> Server Administration
Expected Results: The server administration page loads properly.
Actual Results: The server administration page does not load properly.
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.
- Install portlet on Node1, then install on Node2
- Install portlet on Node2, then install on Node1
- Install portlet on Node1, then shutdown Node1
- Install portlet on Node2, then shutdown Node2
- Install portlet on Node1, then install on Node2, then shutdown Node1
- Install portlet on Node1, then install on Node2, then shutdown Node2
- Install portlet on Node2, then install on Node1, then shutdown Node1
- 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.