Hello,
I've been struggling for some time with a deadlock in Jackrabbit 1.4 (see
https://issues.apache.org/jira/browse/JCR-2426).
Based on some recommendation in ticket I have moved to Jackrabbit 1.6.0 and
used NIOFS (I'm using JVM version 1.6.0_06-b02 for Solaris SPARC)
With Jackrabbit 1.6.0, after some time of intensive load in the system I hit a
jackrabbit deadlock
I see these bugs fixed in 1.6.1. I was wondering if any of these would fix the
deadlock I'm seeing or if this is something new
Thanks,
Antonio
JCR-2443 AbstractSession should not synchronize on the session instance
JCR-2250 Base64 bug - last buffer not flushed
JCR-2356 Session holds LockToken after removeLockToken in XA Environment
JCR-2367 RepositoryCopier does not copy open-scoped Locks
JCR-2421 Unable to create repository using jackrabbit-webapp because a
directory called "jackrabbit" already exists
JCR-769 Unable to login with two different Credentials to same
workspace in one Transaction
JCR-2332 Unable to delete a non session-scoped locked node in XA
Environment
JCR-2323 InputStream.read return value is ignored.
JCR-2364 NullPointerException when accessing the about.jsp page because
of missing /META-INF/NOTICE.TXT
JCR-2297 Registering multiple node types with the same name in a single
file must fail
JCR-2299 Bad check for sv:name attribute presence in system view import
JCR-2369 Problem importing node with binary property in a repository
configured with datastore
---------------------------------------------------
Found one Java-level deadlock:
=============================
"jmssecondaryApplnJobExecutor-8":
waiting to lock monitor 0x054bdf88 (object 0xa0950f08, a
org.apache.jackrabbit.core.state.NodeState),
which is held by "jmssecondaryApplnJobExecutor-7"
"jmssecondaryApplnJobExecutor-7":
waiting to lock monitor 0x067ee410 (object 0xa4ee3148, a java.lang.Object),
which is held by "jmssecondaryApplnJobExecutor-8"
Java stack information for the threads listed above:
===================================================
"jmssecondaryApplnJobExecutor-8":
at
org.apache.jackrabbit.core.state.NodeState.getChildNodeEntry(NodeState.java:300)
- waiting to lock <0xa0950f08> (a
org.apache.jackrabbit.core.state.NodeState)
at
org.apache.jackrabbit.core.CachingHierarchyManager.nodeModified(CachingHierarchyManager.java:316)
- locked <0xa4ee3148> (a java.lang.Object)
at
org.apache.jackrabbit.core.CachingHierarchyManager.stateModified(CachingHierarchyManager.java:293)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:111)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.stateModified(SessionItemStateManager.java:889)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:111)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:452)
at
org.apache.jackrabbit.core.state.XAItemStateManager.stateModified(XAItemStateManager.java:602)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:111)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:400)
at
org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:244)
at
org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:297)
at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:749)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1115)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:351)
at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:325)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1111)
- locked <0x9c151520> (a org.apache.jackrabbit.core.XASessionImpl)
at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915)
at
org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180)
at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.collectionBegin(InventoryNeListServiceImpl.java:153)
at
com.alcatel.axs.app.idm.InventoryDiscoveryServiceImpl.doDiscoveryNow(InventoryDiscoveryServiceImpl.java:219)
at sun.reflect.GeneratedMethodAccessor1067.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:36)
at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:243)
at
javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1074)
at
javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:955)
at
org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:88)
at
org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at
org.jboss.mx.modelmbean.RequiredModelMBeanInvoker.invoke(RequiredModelMBeanInvoker.java:127)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:291)
at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288)
at $Proxy692.doDiscoveryNow(Unknown Source)
at com.alcatel.axs.app.idm.InventoryJob.execute(InventoryJob.java:41)
at
com.alcatel.axs.container.jobmanager.ManagedJob.run(ManagedJob.java:55)
at
com.alcatel.axs.container.jobmanager.JMSJobExecutor.onMessage(JMSJobExecutor.java:50)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:322)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:260)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:944)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:868)
at java.lang.Thread.run(Thread.java:619)
"jmssecondaryApplnJobExecutor-7":
at
org.apache.jackrabbit.core.CachingHierarchyManager.nodeAdded(CachingHierarchyManager.java:362)
- waiting to lock <0xa4ee3148> (a java.lang.Object)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyNodeAdded(StateChangeDispatcher.java:159)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.nodeAdded(SessionItemStateManager.java:947)
at
org.apache.jackrabbit.core.state.NodeState.notifyNodeAdded(NodeState.java:882)
at
org.apache.jackrabbit.core.state.NodeState.addChildNodeEntry(NodeState.java:351)
- locked <0xa0950f08> (a org.apache.jackrabbit.core.state.NodeState)
at
org.apache.jackrabbit.core.NodeImpl.createChildNode(NodeImpl.java:541)
- locked <0xa3e63c58> (a org.apache.jackrabbit.core.NodeImpl)
at
org.apache.jackrabbit.core.NodeImpl.internalAddChildNode(NodeImpl.java:802)
at
org.apache.jackrabbit.core.NodeImpl.internalAddNode(NodeImpl.java:735)
at
org.apache.jackrabbit.core.NodeImpl.addNodeWithUuid(NodeImpl.java:2200)
- locked <0xa3e63ca8> (a org.apache.jackrabbit.core.NodeImpl)
at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:2133)
- locked <0xa3e63ca8> (a org.apache.jackrabbit.core.NodeImpl)
at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.createNeNode(InventoryNeListServiceImpl.java:641)
at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.collectionBegin(InventoryNeListServiceImpl.java:142)
at
com.alcatel.axs.app.idm.InventoryDiscoveryServiceImpl.doDiscoveryNow(InventoryDiscoveryServiceImpl.java:219)
at sun.reflect.GeneratedMethodAccessor1067.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:36)
at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:243)
at
javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1074)
at
javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:955)
at
org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:88)
at
org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at
org.jboss.mx.modelmbean.RequiredModelMBeanInvoker.invoke(RequiredModelMBeanInvoker.java:127)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:291)
at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288)
at $Proxy692.doDiscoveryNow(Unknown Source)
at com.alcatel.axs.app.idm.InventoryJob.execute(InventoryJob.java:41)
at
com.alcatel.axs.container.jobmanager.ManagedJob.run(ManagedJob.java:55)
at
com.alcatel.axs.container.jobmanager.JMSJobExecutor.onMessage(JMSJobExecutor.java:50)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:322)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:260)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:944)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:868)
at java.lang.Thread.run(Thread.java:619)
Found 1 deadlock.Found one Java-level deadlock:
=============================
"jmssecondaryApplnJobExecutor-8":
waiting to lock monitor 0x054bdf88 (object 0xa0950f08, a
org.apache.jackrabbit.core.state.NodeState),
which is held by "jmssecondaryApplnJobExecutor-7"
"jmssecondaryApplnJobExecutor-7":
waiting to lock monitor 0x067ee410 (object 0xa4ee3148, a java.lang.Object),
which is held by "jmssecondaryApplnJobExecutor-8"
Java stack information for the threads listed above:
===================================================
"jmssecondaryApplnJobExecutor-8":
at
org.apache.jackrabbit.core.state.NodeState.getChildNodeEntry(NodeState.java:300)
- waiting to lock <0xa0950f08> (a
org.apache.jackrabbit.core.state.NodeState)
at
org.apache.jackrabbit.core.CachingHierarchyManager.nodeModified(CachingHierarchyManager.java:316)
- locked <0xa4ee3148> (a java.lang.Object)
at
org.apache.jackrabbit.core.CachingHierarchyManager.stateModified(CachingHierarchyManager.java:293)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:111)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.stateModified(SessionItemStateManager.java:889)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:111)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.stateModified(LocalItemStateManager.java:452)
at
org.apache.jackrabbit.core.state.XAItemStateManager.stateModified(XAItemStateManager.java:602)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateModified(StateChangeDispatcher.java:111)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.stateModified(SharedItemStateManager.java:400)
at
org.apache.jackrabbit.core.state.ItemState.notifyStateUpdated(ItemState.java:244)
at
org.apache.jackrabbit.core.state.ChangeLog.persisted(ChangeLog.java:297)
at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:749)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1115)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:351)
at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:354)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:325)
at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1111)
- locked <0x9c151520> (a org.apache.jackrabbit.core.XASessionImpl)
at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:915)
at
org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:180)
at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.collectionBegin(InventoryNeListServiceImpl.java:153)
at
com.alcatel.axs.app.idm.InventoryDiscoveryServiceImpl.doDiscoveryNow(InventoryDiscoveryServiceImpl.java:219)
at sun.reflect.GeneratedMethodAccessor1067.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:36)
at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:243)
at
javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1074)
at
javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:955)
at
org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:88)
at
org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at
org.jboss.mx.modelmbean.RequiredModelMBeanInvoker.invoke(RequiredModelMBeanInvoker.java:127)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:291)
at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288)
at $Proxy692.doDiscoveryNow(Unknown Source)
at com.alcatel.axs.app.idm.InventoryJob.execute(InventoryJob.java:41)
at
com.alcatel.axs.container.jobmanager.ManagedJob.run(ManagedJob.java:55)
at
com.alcatel.axs.container.jobmanager.JMSJobExecutor.onMessage(JMSJobExecutor.java:50)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:322)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:260)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:944)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:868)
at java.lang.Thread.run(Thread.java:619)
"jmssecondaryApplnJobExecutor-7":
at
org.apache.jackrabbit.core.CachingHierarchyManager.nodeAdded(CachingHierarchyManager.java:362)
- waiting to lock <0xa4ee3148> (a java.lang.Object)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyNodeAdded(StateChangeDispatcher.java:159)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.nodeAdded(SessionItemStateManager.java:947)
at
org.apache.jackrabbit.core.state.NodeState.notifyNodeAdded(NodeState.java:882)
at
org.apache.jackrabbit.core.state.NodeState.addChildNodeEntry(NodeState.java:351)
- locked <0xa0950f08> (a org.apache.jackrabbit.core.state.NodeState)
at
org.apache.jackrabbit.core.NodeImpl.createChildNode(NodeImpl.java:541)
- locked <0xa3e63c58> (a org.apache.jackrabbit.core.NodeImpl)
at
org.apache.jackrabbit.core.NodeImpl.internalAddChildNode(NodeImpl.java:802)
at
org.apache.jackrabbit.core.NodeImpl.internalAddNode(NodeImpl.java:735)
at
org.apache.jackrabbit.core.NodeImpl.addNodeWithUuid(NodeImpl.java:2200)
- locked <0xa3e63ca8> (a org.apache.jackrabbit.core.NodeImpl)
at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:2133)
- locked <0xa3e63ca8> (a org.apache.jackrabbit.core.NodeImpl)
at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.createNeNode(InventoryNeListServiceImpl.java:641)
at
com.alcatel.axs.app.idm.nelist.InventoryNeListServiceImpl.collectionBegin(InventoryNeListServiceImpl.java:142)
at
com.alcatel.axs.app.idm.InventoryDiscoveryServiceImpl.doDiscoveryNow(InventoryDiscoveryServiceImpl.java:219)
at sun.reflect.GeneratedMethodAccessor1067.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:36)
at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:243)
at
javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1074)
at
javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:955)
at
org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:88)
at
org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at
org.jboss.mx.modelmbean.RequiredModelMBeanInvoker.invoke(RequiredModelMBeanInvoker.java:127)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at
org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:291)
at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288)
at $Proxy692.doDiscoveryNow(Unknown Source)
at com.alcatel.axs.app.idm.InventoryJob.execute(InventoryJob.java:41)
at
com.alcatel.axs.container.jobmanager.ManagedJob.run(ManagedJob.java:55)
at
com.alcatel.axs.container.jobmanager.JMSJobExecutor.onMessage(JMSJobExecutor.java:50)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:531)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:466)
at
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:435)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:322)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:260)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:944)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:868)
at java.lang.Thread.run(Thread.java:619)
Found 1 deadlock.