Chetan Mehrotra created OAK-4687:
------------------------------------

             Summary: Issue with backgroundOperationLock handling in exception 
case
                 Key: OAK-4687
                 URL: https://issues.apache.org/jira/browse/OAK-4687
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: documentmk
            Reporter: Chetan Mehrotra
            Assignee: Marcel Reutegger
            Priority: Minor
             Fix For: 1.6


If in a commit some exception occurs then that exception gets hidden due to 
error in exception handling code path in DocumentNodeStore

Instead of original exception following exception is seen

{noformat}
Caused by: java.lang.IllegalMonitorStateException: attempt to unlock read lock, 
not locked by current thread
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:447)
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:431)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1340)
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:883)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.canceled(DocumentNodeStore.java:767)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:303)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:268)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.access$300(DocumentNodeStoreBranch.java:58)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:513)
        ... 36 more
{noformat}

This happens because the lock is released twice
# Once in DocumentNodeStore#done
# Second in DocumentNodeStore#canceled. Invoked in case of failure in 
DocumentNodeStoreBranch#persist



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to