[ 
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
    change.

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 accessed.

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

Reply via email to