You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Mete Atamel (JIRA)" <ji...@apache.org> on 2013/01/22 13:00:16 UTC

[jira] [Commented] (OAK-571) Limit usage of headRevId in sync collection to non-branches

    [ https://issues.apache.org/jira/browse/OAK-571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13559571#comment-13559571 ] 

Mete Atamel commented on OAK-571:
---------------------------------

Not totally sure but I think there's something wrong with MergeCommand. Here's an example of a conflicting commit that I get in concurrentNonConflictingMerges with the latest patch I attached:

Conflict @597 with @593
Diff@597: +"/test/t1/node9":{}
Diff@593: +"/test/t1/node9":{}+"/test/t0/node10":{}

As seen, rev 593 has an extra diff but concurrentNonConflictingMerges branches and merges in every commit, so I'm not sure if multiple diffs are expected in this case. One other problem is MergeCommand commits only once, so if there's a conflicting commit, there's no retry. I can fix that by calling MongoNodeStore#commit instead and that does retries and fixes the test but I think this will just hide the underlying problem with MergeCommand.
                
> Limit usage of headRevId in sync collection to non-branches
> -----------------------------------------------------------
>
>                 Key: OAK-571
>                 URL: https://issues.apache.org/jira/browse/OAK-571
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mongomk
>            Reporter: Marcel Reutegger
>         Attachments: OAK-571-2.patch, OAK-571.patch
>
>
> Currently the head revision in the sync collection is also updated for branch commits. This makes some commands more complicated (e.g. FetchHeadRevisionIdAction must check for branch commits). With the current implementation it may also happen that a commit is exposed, which is later marked as failed. This happens when the head revision is set to a higher value (because of a branch commit) than the current head revision of the trunk. Now it may happen that a commit with revision R to trunk with head-of-trunk < R < head-of-branch is exposed as valid commit for some time but may later marked failed.

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