Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-3406

Journal doUnlock sometimes not called on repository shutdown

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.5.2
    • None
    • None

    Description

      When the repository is shut down, the method AbstractJournal.doUnlock(boolean successful) is sometimes not called. The method Journal.close is called, but when the journal implementation uses a reentrant lock it can't unlock because close is called from a different thread.

      The reason for not calling doUnlock is that ClusterNode.stop() sets the status to "stopped", which causes all WorkspaceUpdateChannel methods to not work, including updateCommitted and updateCancelled. Therefore, it is possible that an operation is started but never completed nor cancelled.

      To solve the issue, I found that it is enough to let updateCommitted and updateCancelled to complete, so that operations that are in progress can finish.

      Attachments

        Activity

          People

            thomasm Thomas Mueller
            thomasm Thomas Mueller
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: