jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dominique Pfister (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (JCR-756) Concurrent add/remove child node operations in a cluster may corrupt repository.
Date Tue, 20 Feb 2007 16:28:05 GMT

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

Dominique Pfister resolved JCR-756.

    Resolution: Fixed

Problem identified to be the following during an update:

1) When a journal update is started, the clustered instance syncs with journal contents. This

    might  change the SharedItemStateManager's states
2) Later on, eventual, non-conflicting changes are merged to the local states. 
3) Finally, the journal update is prepared. This might again trigger an external update from
    the journal and change the shared states . However, these changes are not merged to the

    local states.
4) The local states are pushed "blindly" to the shared states, potentially overwriting a previous

Fixed by locking the journal in 1) instead of 3). This still allows non-conflicting merge,
but only once. An even
better, less blocking approach would iteratively merge the changes seen in external updates
to the local states.

Thanks a lot to Rafał Kwiecień for reporting this bug and providing the test classes.

Fixed in revision 509624.

> Concurrent add/remove child node operations in a cluster may corrupt repository.
> --------------------------------------------------------------------------------
>                 Key: JCR-756
>                 URL: https://issues.apache.org/jira/browse/JCR-756
>             Project: Jackrabbit
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.2.1
>            Reporter: Dominique Pfister
>         Assigned To: Dominique Pfister
>         Attachments: Create.java, Remove.java, repository.xml
> Concurrent add/remove child node operations in a cluster may store an inconsistent list
of child node entries, i.e. an entry in the list may appear that has no associated node. This
eventually results in an ItemNotFoundException, the next time one of these bogus entries is

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message