Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 61848 invoked from network); 13 Apr 2010 15:03:21 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 13 Apr 2010 15:03:21 -0000 Received: (qmail 11407 invoked by uid 500); 13 Apr 2010 15:03:20 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 11366 invoked by uid 500); 13 Apr 2010 15:03:20 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 11359 invoked by uid 99); 13 Apr 2010 15:03:20 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Apr 2010 15:03:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Apr 2010 15:03:17 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o3DF2tWH012269 for ; Tue, 13 Apr 2010 11:02:55 -0400 (EDT) Message-ID: <33515411.26081271170975536.JavaMail.jira@thor> Date: Tue, 13 Apr 2010 11:02:55 -0400 (EDT) From: "Jukka Zitting (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Updated: (JCR-2525) NodeState and NodeStateListener deadlock In-Reply-To: <274649045.44681267485605897.JavaMail.jira@brutus.apache.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-2525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jukka Zitting updated JCR-2525: ------------------------------- Status: Resolved (was: Patch Available) Assignee: Jukka Zitting Fix Version/s: 2.1.0 Resolution: Fixed Thanks for the excellent work on this! I've committed the latest patch and the test case to Jackrabbit trunk in revision 933646 and merged the changes to the 2.1 branch in revision 933662. Is there demand for also a 1.6.2 release with this fix? > NodeState and NodeStateListener deadlock > ---------------------------------------- > > Key: JCR-2525 > URL: https://issues.apache.org/jira/browse/JCR-2525 > Project: Jackrabbit Content Repository > Issue Type: Bug > Components: jackrabbit-core > Affects Versions: 1.6.0, 1.6.1 > Reporter: Frederic Guilbeault > Assignee: Jukka Zitting > Priority: Critical > Fix For: 2.1.0 > > Attachments: ItemStateHierarchyManagerDeadlockTest.java, JCR-2525-listener-outside-lock.patch, JCR_Deadlock_additionalChanges.txt, JCR_Deadlock_changes.diff, JCRDeadlockTest.zip, threads_stuck.txt > > > Java stack information for the threads listed above: > =================================================== > "jmssecondaryApplnJobExecutor-8": > at org.apache.jackrabbit.core.state.NodeState.getChildNodeEntry(NodeState.java:300) > - waiting to lock <0x9e6c6d08> (a org.apache.jackrabbit.core.state.NodeState) > at org.apache.jackrabbit.core.CachingHierarchyManager.nodeModified(CachingHierarchyManager.java:316) > - locked <0xa09882a8> (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 <0x9b1b0be0> (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 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 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 <0xa09882a8> (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 <0x9e6c6d08> (a org.apache.jackrabbit.core.state.NodeState) > at org.apache.jackrabbit.core.NodeImpl.createChildNode(NodeImpl.java:541) > - locked <0xa00619a8> (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 <0xa00619f8> (a org.apache.jackrabbit.core.NodeImpl) > at org.apache.jackrabbit.core.NodeImpl.addNode(NodeImpl.java:2133) > - locked <0xa00619f8> (a org.apache.jackrabbit.core.NodeImpl) > ... > 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 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. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira