Return-Path: Delivered-To: apmail-jackrabbit-users-archive@minotaur.apache.org Received: (qmail 33287 invoked from network); 5 Jan 2011 16:19:43 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 5 Jan 2011 16:19:43 -0000 Received: (qmail 76910 invoked by uid 500); 5 Jan 2011 16:19:43 -0000 Delivered-To: apmail-jackrabbit-users-archive@jackrabbit.apache.org Received: (qmail 76730 invoked by uid 500); 5 Jan 2011 16:19:42 -0000 Mailing-List: contact users-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@jackrabbit.apache.org Delivered-To: mailing list users@jackrabbit.apache.org Received: (qmail 76722 invoked by uid 99); 5 Jan 2011 16:19:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jan 2011 16:19:42 +0000 X-ASF-Spam-Status: No, hits=1.5 required=10.0 tests=FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of db.rajeev@gmail.com designates 209.85.216.177 as permitted sender) Received: from [209.85.216.177] (HELO mail-qy0-f177.google.com) (209.85.216.177) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Jan 2011 16:19:35 +0000 Received: by qyk27 with SMTP id 27so15912680qyk.1 for ; Wed, 05 Jan 2011 08:19:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=yi3wt5XgOWDpks59IYyF/vrMt7lOlZvHjlORSgvxT4g=; b=DIYRhn3rk8Rnu7YvhoXEvjYnCK3w2++Cx0h5pmS7PKwx1jCeUTh5h+IDZfREOeE5qV UQi+6+l7Cutq5dewkmFtHQtHaIyAyLs4A/j13Itx2Gewu7lDTQQAp9V9E2DkWpS5VkQo QIqQ95J9GtdD2z4NCWne9oUFEAb4stUJnwz0k= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=nWSh1jtMI4xHex6bO0499AJ66c9wOrUAUVlvoTxLc1D05FYgHLyxSbt85oLIikBwci WKh1bBOQj+rLthlzgEyCkOIO/SsbxznsRcHbR50hfJcMbv0Lc+RVXZpFLhhWzArBiMeF e+7pJ32egSCatIHc03H+JroDJnp4YLgpV8+c0= MIME-Version: 1.0 Received: by 10.229.95.11 with SMTP id b11mr20320104qcn.28.1294244354663; Wed, 05 Jan 2011 08:19:14 -0800 (PST) Received: by 10.229.52.73 with HTTP; Wed, 5 Jan 2011 08:19:14 -0800 (PST) In-Reply-To: References: Date: Wed, 5 Jan 2011 21:49:14 +0530 Message-ID: Subject: Re: Jackrabbit 1.6.4 locking issue From: Raj To: users@jackrabbit.apache.org Content-Type: multipart/alternative; boundary=0016e648be7803269b04991bbf56 --0016e648be7803269b04991bbf56 Content-Type: text/plain; charset=ISO-8859-1 Hi Everyone, Any pointers would be helpful. thanks in advance, Rajeev On Tue, Dec 21, 2010 at 1:51 PM, Raj wrote: > > hi All, > > I am facing deadlock in my web application, which am suspecting is due to > JackRabbit. > Any pointers to resolve this are welcome. > > Environment: JackRabbit 1.6.4 on Java 1.6.0_18 (32bit, windows 7 64bit). > Webapp is deployed under tomcat 5.5.28 > > There are 3 user operations initiated sequentially with 4-5 seconds delay. > All the 3 operations are similar in nature, they first read data from > jackrabbit repo and copy that data. > > http-80-Processor18 - 1st operation, > http-80-Processor19 - 2nd > http-80-Processor25 - is 3rd. > > Relevant thread dump is posted below. > > Questions/Observations - > Q1: processor 18 is waiting for lock 0x0c9ffda8 when it has already > acquired it ! > Q2: processor 19 is waiting for 0x0c9de878 while it is already acquired by > processor 25. > Q3: processor 25 is waiting for lock 0x0c9ffd98 when it has already > acquired it ! > > regards, > Rajeev > > thread dump > ==================================================== > "http-80-Processor18" > daemon > prio=6 tid=0x3c80c000 > nid=0xce0 > in Object.wait() > [0x41e9d000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x0c9ffda8> > (a > EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$WriterLock) > at java.lang.Object.wait(Object.java:485) > at > EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$WriterLock.acquire(Unknown > Source) > - locked <0x0c9ffda8> > (a > EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$WriterLock) > at > org.apache.jackrabbit.core.state.DefaultISMLocking$WriteLockImpl.(DefaultISMLocking.java:76) > at > org.apache.jackrabbit.core.state.DefaultISMLocking$WriteLockImpl.(DefaultISMLocking.java:70) > at > org.apache.jackrabbit.core.state.DefaultISMLocking.acquireWriteLock(DefaultISMLocking.java:64) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.acquireWriteLock(SharedItemStateManager.java:1836) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.access$200(SharedItemStateManager.java:116) > at > org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:558) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1473) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1503) > 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.BatchedItemOperations.update(BatchedItemOperations.java:155) > at > org.apache.jackrabbit.core.WorkspaceImpl.internalCopy(WorkspaceImpl.java:448) > at > org.apache.jackrabbit.core.WorkspaceImpl.copy(WorkspaceImpl.java:666) > at > com.thed.repository.TestcaseContentsManager.copyTestCases(TestcaseContentsManager.java:354) > > ==================================================== > "http-80-Processor19" > daemon > prio=6 tid=0x3c80c400 > nid=0x15e0 > waiting for monitor entry > [0x41f2d000] > java.lang.Thread.State: BLOCKED (on object monitor) > at > org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:167) > - waiting to lock <0x0c9de878> > (a org.apache.jackrabbit.core.state.LocalItemStateManager) > at > org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:198) > at > org.apache.jackrabbit.core.ItemManager.getItemData(ItemManager.java:352) > at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:298) > at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:562) > - locked <0x0c9de2c8> > (a org.apache.jackrabbit.core.ItemManager) > at > org.apache.jackrabbit.core.lock.LockManagerImpl.refresh(LockManagerImpl.java:1092) > at > org.apache.jackrabbit.core.lock.LockManagerImpl.nodeAdded(LockManagerImpl.java:1122) > at > org.apache.jackrabbit.core.lock.LockManagerImpl.onEvent(LockManagerImpl.java:1025) > at > org.apache.jackrabbit.core.observation.EventConsumer.consumeEvents(EventConsumer.java:244) > at > org.apache.jackrabbit.core.observation.ObservationDispatcher.dispatchEvents(ObservationDispatcher.java:201) > at > org.apache.jackrabbit.core.observation.EventStateCollection.dispatch(EventStateCollection.java:474) > at > org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:780) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1503) > 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.BatchedItemOperations.update(BatchedItemOperations.java:155) > at > org.apache.jackrabbit.core.WorkspaceImpl.internalCopy(WorkspaceImpl.java:448) > at > org.apache.jackrabbit.core.WorkspaceImpl.copy(WorkspaceImpl.java:666) > > ==================================================== > > "http-80-Processor25" > daemon > prio=6 tid=0x3c80e800 > nid=0xb10 > in Object.wait() > [0x4228d000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x0c9ffd98> > (a > EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock) > at java.lang.Object.wait(Object.java:485) > at > EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock.acquire(Unknown > Source) > - locked <0x0c9ffd98> > (a > EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock) > at > org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.(DefaultISMLocking.java:102) > at > org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.(DefaultISMLocking.java:96) > at > org.apache.jackrabbit.core.state.DefaultISMLocking.acquireReadLock(DefaultISMLocking.java:53) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.acquireReadLock(SharedItemStateManager.java:1822) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:253) > at > org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:107) > at > org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:172) > - locked <0x0c9de878> > (a org.apache.jackrabbit.core.state.LocalItemStateManager) > at > org.apache.jackrabbit.core.state.SessionItemStateManager.getItemState(SessionItemStateManager.java:198) > at > org.apache.jackrabbit.core.HierarchyManagerImpl.getItemState(HierarchyManagerImpl.java:150) > at > org.apache.jackrabbit.core.HierarchyManagerImpl.getPath(HierarchyManagerImpl.java:393) > at > org.apache.jackrabbit.core.CachingHierarchyManager.getPath(CachingHierarchyManager.java:229) > at > org.apache.jackrabbit.core.lock.LockManagerImpl.getPath(LockManagerImpl.java:751) > at > org.apache.jackrabbit.core.lock.LockManagerImpl.getLockInfo(LockManagerImpl.java:486) > > --0016e648be7803269b04991bbf56--