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 Tue, 28 Aug 2012 07:27:07 GMT

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

Marcel Reutegger updated JCR-3417:

       Resolution: Fixed
    Fix Version/s: 2.5.2
           Status: Resolved  (was: Patch Available)

Committed a slightly modified version of the patch (with above mentioned improvement) in revision:
> 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
>             Fix For: 2.5.2
>         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