問題
-
LiferayのクラスタリングでjGroupsがHTTPスレッドにバインドされ、クラスタが著しく不安定になることがある。
"ajp-nio-10.141.26.102-8009-exec-189" #12374 daemon prio=5 osprio=0 tid=0x00007f1d18097ac0 nid=0x2203c waiting on condition [0x00007f19ee037000] java.lang.Thread.State: TIMEDWAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000038b2f10c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2163)
at org.jgroups.util.CreditMap.decrement(CreditMap.java:157)
at org.jgroups.protocols.MFC.handleDownMessage(MFC.java:104)
at org.jgroups.protocols.FlowControl.down(FlowControl.java:341)
at org.jgroups.protocols.FRAG2.down(FRAG2.java:147)
at org.jgroups.protocols.pbcast.STATETRANSFER.down(STATETRANSFER.java:238)
at org.jgroups.stack.ProtocolStack.down(ProtocolStack.java:1030)
at org.jgroups.JChannel.down(JChannel.java:722)
at org.jgroups.JChannel.send(JChannel.java:420)
at org.jgroups.JChannel.send(JChannel.java:433)
at com.liferay.portal.cluster.ClusterBase.sendJGroupsMessage(ClusterBase.java:97)
at com.liferay.portal.cluster.ClusterLinkImpl.sendMulticastMessage(ClusterLinkImpl.java:109)
at com.liferay.portal.kernel.cluster.ClusterLinkUtil.sendMulticastMessage(ClusterLinkUtil.java:80)
at com.liferay.portal.kernel.cluster.messaging.ClusterBridgeMessageListener.doReceive(ClusterBridgeMessageListener.java:55)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:72)
at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:71)
at com.liferay.portal.kernel.concurrent.CallerRunsPolicy.rejectedExecution(CallerRunsPolicy.java:46)
at com.liferay.portal.kernel.search.AbstractSearchEngineConfigurator$1.rejectedExecution(AbstractSearchEngineConfigurator.java:236)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:186)
at com.liferay.portal.kernel.messaging.ParallelDestination.dispatch(ParallelDestination.java:88)
at com.liferay.portal.kernel.messaging.BaseAsyncDestination.send(BaseAsyncDestination.java:177)
at com.liferay.portal.kernel.messaging.DefaultMessageBus.sendMessage(DefaultMessageBus.java:179)
at com.liferay.portal.kernel.messaging.sender.DefaultMessageSender.send(DefaultMessageSender.java:27)
at com.liferay.portal.kernel.messaging.proxy.BaseMultiDestinationProxyBean.send(BaseMultiDestinationProxyBean.java:32)
at com.liferay.portal.messaging.proxy.MultiDestinationMessagingProxyInvocationHandler.invoke(MultiDestinationMessagingProxyInvocationHandler.java:53)
at com.sun.proxy.$Proxy309.updateDocument(Unknown Source)
at com.liferay.portal.kernel.search.SearchEngineUtil.updateDocument(SearchEngineUtil.java:843)
at com.liferay.portlet.usersadmin.util.UserIndexer.doReindex(UserIndexer.java:375)
at com.liferay.portal.kernel.search.BaseIndexer.reindex(BaseIndexer.java:519)
at sun.reflect.GeneratedMethodAccessor2687.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.portal.search.buffer.IndexerRequest.execute(IndexerRequest.java:90)
at com.liferay.portal.search.buffer.IndexerRequestBufferUtil.executeIndexerRequest(IndexerRequestBufferUtil.java:102)
at com.liferay.portal.search.buffer.IndexerRequestBufferUtil.execute(IndexerRequestBufferUtil.java:59)
at com.liferay.portal.search.buffer.IndexerRequestBufferUtil.execute(IndexerRequestBufferUtil.java:115)
at com.liferay.portal.search.buffer.IndexerRequestBufferTransactionLifecycleListener.committed(IndexerRequestBufferTransactionLifecycleListener.java:33)
at com.liferay.portal.search.buffer.IndexerRequestBufferTransactionLifecycleListener$1.call(IndexerRequestBufferTransactionLifecycleListener.java:47)
at com.liferay.portal.search.buffer.IndexerRequestBufferTransactionLifecycleListener$1.call(IndexerRequestBufferTransactionLifecycleListener.java:1)
at com.liferay.portal.spring.transaction.BaseTransactionExecutor.invokeCallbacks(BaseTransactionExecutor.java:35)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.processCommit(DefaultTransactionExecutor.java:126)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:73)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
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.$Proxy118.updateUser(Unknown Source)
....
Environment
- Liferay Portal 6.2
- Liferay DXP 7.0-7.2
解決策
- 観測された動作は、既知の問題 LPS-97116 であり、Liferayのバージョンに応じたフィックスパックの最新リリースで修正されています。 Hotfixが必要な場合は、チケットを作成してください。
- Liferay DXPに Fix Pack と Hotfix をインストールする .