In some cases, JGroups may not get a response when trying to bind to an address. In this case, an exception like the following can be thrown:
05:50:53,559 ERROR [Framework Event Dispatcher: Equinox Container: 70881daa-756e-0016-1bfa-e3d1d4e1b271][com_liferay_portal_cluster_multiple:97] FrameworkEvent ERROR org.osgi.framework.ServiceException: Exception in org.apache.felix.scr.impl.manager.SingleComponentManager.getService() at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:222) at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111) ... Caused by: java.lang.IllegalStateException: Could not obtain lock at org.apache.felix.scr.impl.manager.AbstractComponentManager.obtainLock(AbstractComponentManager.java:198) ...
Resolution
To resolve this issue, one of the following options should be performed:
- Modify the network so that outgoing traffic is allowed
- Add the below property to the portal-ext.properties / portal-setup-wizard.properties file with an address that replies to pings immediately (shown below with the default value):
cluster.link.autodetect.address=www.google.com:80
Set this property to autodetect the default outgoing IP address so that JGroups can bind to it. The property must point to an address that is accessible to the portal server, www.google.com, or your local gateway.