Hello,

we have experienced a deadlock situation in our backend (jackrabbit 2.6.5), 
where it seems that the SharedItemStateManager is the point of failure. 
Disclaimer: I have only a limited number of thread dumps and by no means an 
expert in analysing them.

Here is the situation. At 12:12 the dump shows

"ajp-8009-20" daemon prio=10 tid=0x0000000001229800 nid=0x40e8 runnable 
[0x00007fe03386a000]
   java.lang.Thread.State: RUNNABLE
        at java.util.HashMap.createEntry(Unknown Source)
        at java.util.HashMap.addEntry(Unknown Source)
        at java.util.HashMap.put(Unknown Source)
        at java.util.HashSet.add(Unknown Source)
        at 
org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtualItemState(SharedItemStateManager.java:1783)
        - locked <0x0000000781281568> (a 
org.apache.jackrabbit.core.state.SharedItemStateManager)
        at 
org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270)
        at 
org.apache.jackrabbit.core.state.LocalItemStateManager.getPropertyState(LocalItemStateManager.java:135)
        at 
org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:177)
        - locked <0x00000007f66b6ec0> (a 
org.apache.jackrabbit.core.state.XAItemStateManager)

With already a few other threads waiting for lock 0x0000000781281568.

Then three minutes later:

"ajp-8009-20" daemon prio=10 tid=0x0000000001229800 nid=0x40e8 waiting for 
monitor entry [0x00007fe03386a000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at java.util.HashMap.createEntry(Unknown Source)
        at java.util.HashMap.addEntry(Unknown Source)
        at java.util.HashMap.put(Unknown Source)
        at java.util.HashSet.add(Unknown Source)
        at 
org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtualItemState(SharedItemStateManager.java:1783)
        - locked <0x0000000781281568> (a 
org.apache.jackrabbit.core.state.SharedItemStateManager)
        at 
org.apache.jackrabbit.core.state.SharedItemStateManager.getItemState(SharedItemStateManager.java:270)
        at 
org.apache.jackrabbit.core.state.LocalItemStateManager.getPropertyState(LocalItemStateManager.java:135)
        at 
org.apache.jackrabbit.core.state.LocalItemStateManager.getItemState(LocalItemStateManager.java:177)
        - locked <0x00000007f66b6e70> (a 
org.apache.jackrabbit.core.state.XAItemStateManager)

And the same other threads (actually plus one more) waiting.

Can anybody make some sense out of this, please?

Especially
- is it just a weird concidence that the same thread/stacktrace is locking the 
SharedItemStateManager?
- what is thread "ajp-8009-20" blocked on in the second dump?
- how to resolve this ;) ??

Thanks,
Thomas


Reply via email to