You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Yasuo Nakajima (JIRA)" <ji...@apache.org> on 2014/03/13 05:23:42 UTC

[jira] [Created] (JCR-3746) Disposing a workspace causes a deadlock

Yasuo Nakajima created JCR-3746:
-----------------------------------

             Summary: Disposing a workspace causes a deadlock
                 Key: JCR-3746
                 URL: https://issues.apache.org/jira/browse/JCR-3746
             Project: Jackrabbit Content Repository
          Issue Type: Bug
          Components: jackrabbit-core
    Affects Versions: 2.4.3
         Environment: Windows Server 2008 SP2
            Reporter: Yasuo Nakajima


An inappropriate use of ReentrantWriterPreferenceReadWriteLock can cause a deadlock in RepositoryImpl.WorkspaceInfo.dispose().
It tries to upgrade a read lock to write lock.
This causes a deadlock when other threads already have been acquired the read or write lock before the dispose thread acquires the write lock.  In this case, the dispose thread will wait for acquiring the write lock forever because it holds the read lock itself.
This problem is described in JCR-546 and ‘dispose’ is pointed out as a possible problem.
We encountered the deadlock in our environment.
The deadlock does not happen in default workspace because dispose is not applied for it.



--
This message was sent by Atlassian JIRA
(v6.2#6252)