Hi Everyone, Any pointers would be helpful.
thanks in advance, Rajeev On Tue, Dec 21, 2010 at 1:51 PM, Raj <[email protected]> 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.<init>(DefaultISMLocking.java:76) > at > org.apache.jackrabbit.core.state.DefaultISMLocking$WriteLockImpl.<init>(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.<init>(DefaultISMLocking.java:102) > at > org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(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) > >
