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] [Updated] (JCR-3417) Failed Journal lock not propagated
Date Mon, 27 Aug 2012 14:15:07 GMT

     [ https://issues.apache.org/jira/browse/JCR-3417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Marcel Reutegger updated JCR-3417:

    Attachment: JCR-3417.patch

Proposed patch.
> Failed Journal lock not propagated
> ----------------------------------
>                 Key: JCR-3417
>                 URL: https://issues.apache.org/jira/browse/JCR-3417
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core
>    Affects Versions: 1.5, 1.6, 2.0, 2.1, 2.2, 2.3, 2.4
>            Reporter: Marcel Reutegger
>            Assignee: Marcel Reutegger
>         Attachments: JCR-3417.patch
> 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

View raw message