jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bart van der Schans (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-3406) Journal doUnlock sometimes not called on repository shutdown
Date Tue, 14 Aug 2012 13:43:38 GMT

    [ https://issues.apache.org/jira/browse/JCR-3406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13434121#comment-13434121
] 

Bart van der Schans commented on JCR-3406:
------------------------------------------

The if statements seem to be part of the original implementation of JCR-623. I'm just afraid
we might create some race condition on startup. The code seems to be  designed to first trigger
a sync() call before any other operations are done which seems correct to me.

So I rather add some extra logic to the Journal.close() and/or repository shutdown to unlock
properly than removing this "safeguard".

Bart
                
> Journal doUnlock sometimes not called on repository shutdown
> ------------------------------------------------------------
>
>                 Key: JCR-3406
>                 URL: https://issues.apache.org/jira/browse/JCR-3406
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>            Reporter: Thomas Mueller
>            Assignee: Thomas Mueller
>
> 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.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message