jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Raj <db.raj...@gmail.com>
Subject Jackrabbit 1.6.4 locking issue
Date Tue, 21 Dec 2010 08:21:41 GMT
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)

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message