[
https://issues.apache.org/jira/browse/JCR-1979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676677#action_12676677
]
tomekdab edited comment on JCR-1979 at 2/25/09 7:19 AM:
---------------------------------------------------------------
I forgot to add that there few more threads waiting for readLock (session
create & session logout operations). Here are the related thread dumps:
"http-8080-40" daemon prio=10 tid=0x0892e400 nid=0x6ddb in Object.wait()
[0x40ed8000..0x40ed9fc0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x5bec5790> (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 <0x5bec5790> (a
EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:84)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:78)
at
org.apache.jackrabbit.core.state.DefaultISMLocking.acquireReadLock(DefaultISMLocking.java:44)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.acquireReadLock(SharedItemStateManager.java:1405)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:253)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:93)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:158)
- locked <0xb30f9538> (a
org.apache.jackrabbit.core.state.XAItemStateManager)
at
org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:253)
at
org.apache.jackrabbit.core.version.XAVersionManager.<init>(XAVersionManager.java:107)
at
org.apache.jackrabbit.core.XASessionImpl.createVersionManager(XASessionImpl.java:168)
at org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:281)
at org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:249)
at
org.apache.jackrabbit.core.XASessionImpl.<init>(XASessionImpl.java:98)
at
org.apache.jackrabbit.core.RepositoryImpl.createSessionInstance(RepositoryImpl.java:1497)
at
org.apache.jackrabbit.core.RepositoryImpl.createSession(RepositoryImpl.java:984)
at
org.apache.jackrabbit.core.RepositoryImpl.login(RepositoryImpl.java:1399)
"http-8080-38" daemon prio=10 tid=0x0842bc00 nid=0x6dd6 in Object.wait()
[0x407e3000..0x407e4140]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x62e90210> (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 <0x62e90210> (a
EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:84)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:78)
at
org.apache.jackrabbit.core.state.DefaultISMLocking.acquireReadLock(DefaultISMLocking.java:44)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.acquireReadLock(SharedItemStateManager.java:1405)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(SharedItemStateManager.java:286)
at
org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState(XAItemStateManager.java:295)
at
org.apache.jackrabbit.core.CachingHierarchyManager.stateDiscarded(CachingHierarchyManager.java:350)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateDiscarded(StateChangeDispatcher.java:107)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.dispose(LocalItemStateManager.java:353)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.dispose(SessionItemStateManager.java:323)
at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1148)
- locked <0x6fa5b8d0> (a org.apache.jackrabbit.core.XASessionImpl)
at
org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:403)
was (Author: tomekdab):
I forgot to add that there few more threads waiting for readLock (session
login & logout operations). Here are the related thread dumps:
"http-8080-40" daemon prio=10 tid=0x0892e400 nid=0x6ddb in Object.wait()
[0x40ed8000..0x40ed9fc0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x5bec5790> (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 <0x5bec5790> (a
EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:84)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:78)
at
org.apache.jackrabbit.core.state.DefaultISMLocking.acquireReadLock(DefaultISMLocking.java:44)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.acquireReadLock(SharedItemStateManager.java:1405)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:253)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.getNodeState(LocalItemStateManager.java:93)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:158)
- locked <0xb30f9538> (a
org.apache.jackrabbit.core.state.XAItemStateManager)
at
org.apache.jackrabbit.core.state.XAItemStateManager.getItemState(XAItemStateManager.java:253)
at
org.apache.jackrabbit.core.version.XAVersionManager.<init>(XAVersionManager.java:107)
at
org.apache.jackrabbit.core.XASessionImpl.createVersionManager(XASessionImpl.java:168)
at org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:281)
at org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:249)
at
org.apache.jackrabbit.core.XASessionImpl.<init>(XASessionImpl.java:98)
at
org.apache.jackrabbit.core.RepositoryImpl.createSessionInstance(RepositoryImpl.java:1497)
at
org.apache.jackrabbit.core.RepositoryImpl.createSession(RepositoryImpl.java:984)
at
org.apache.jackrabbit.core.RepositoryImpl.login(RepositoryImpl.java:1399)
"http-8080-38" daemon prio=10 tid=0x0842bc00 nid=0x6dd6 in Object.wait()
[0x407e3000..0x407e4140]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x62e90210> (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 <0x62e90210> (a
EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock$ReaderLock)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:84)
at
org.apache.jackrabbit.core.state.DefaultISMLocking$ReadLockImpl.<init>(DefaultISMLocking.java:78)
at
org.apache.jackrabbit.core.state.DefaultISMLocking.acquireReadLock(DefaultISMLocking.java:44)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.acquireReadLock(SharedItemStateManager.java:1405)
at
org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(SharedItemStateManager.java:286)
at
org.apache.jackrabbit.core.state.XAItemStateManager.hasItemState(XAItemStateManager.java:295)
at
org.apache.jackrabbit.core.CachingHierarchyManager.stateDiscarded(CachingHierarchyManager.java:350)
at
org.apache.jackrabbit.core.state.StateChangeDispatcher.notifyStateDiscarded(StateChangeDispatcher.java:107)
at
org.apache.jackrabbit.core.state.LocalItemStateManager.dispose(LocalItemStateManager.java:353)
at
org.apache.jackrabbit.core.state.SessionItemStateManager.dispose(SessionItemStateManager.java:323)
at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:1148)
- locked <0x6fa5b8d0> (a org.apache.jackrabbit.core.XASessionImpl)
at
org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:403)
> Deadlock on concurrent read & transactional write operations
> -------------------------------------------------------------
>
> Key: JCR-1979
> URL: https://issues.apache.org/jira/browse/JCR-1979
> Project: Jackrabbit Content Repository
> Issue Type: Bug
> Components: jackrabbit-core
> Affects Versions: 1.5.0
> Reporter: Przemo Pakulski
> Assignee: Jukka Zitting
> Fix For: 1.5.3
>
>
> Isuue has been introduced by resolving JCR-1755 (Transaction-safe
> versioning). This fixed changed sequence of commits, but at the same time
> order of acquiring locks has been disturbed.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.