jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcel Reutegger (JIRA)" <j...@apache.org>
Subject [jira] [Created] (JCR-3417) Failed Journal lock not propagated
Date Mon, 27 Aug 2012 14:11:07 GMT
Marcel Reutegger created JCR-3417:
-------------------------------------

             Summary: Failed Journal lock not propagated
                 Key: JCR-3417
                 URL: https://issues.apache.org/jira/browse/JCR-3417
             Project: Jackrabbit Content Repository
          Issue Type: Bug
    Affects Versions: 2.4, 2.3, 2.2, 2.1, 2.0, 1.6, 1.5
            Reporter: Marcel Reutegger


Locking the journal when something is written to the repository happens through the UpdateEventChannel
interface. A callstack will usually look like this:

at org.apache.jackrabbit.core.journal.AbstractJournal.lockAndSync(AbstractJournal.java:285)
at org.apache.jackrabbit.core.journal.DefaultRecordProducer.append(DefaultRecordProducer.java:51)
at org.apache.jackrabbit.core.cluster.ClusterNode$WorkspaceUpdateChannel.updateCreated(ClusterNode.java:598)
at org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:565)
at org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:1462)
at org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:1492)

The current implementation silently ignores any exception that happens inside e.g. UpdateEventChannel.updateCreated(Update)
and proceeds with the update assuming everything is OK. This behaviour may lead to a deadlock
when the Journal lock is later acquired again.

I suggest to update at least the updateCreated() method to throw a ClusterException and fail
the Update in SharedItemStateManager with an ItemStateException in case the ClusterException
is thrown.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message