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 "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2015/09/09 10:42:46 UTC

[jira] [Comment Edited] (OAK-2929) Parent of unseen children must not be removable

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

Marcel Reutegger edited comment on OAK-2929 at 9/9/15 8:42 AM:
---------------------------------------------------------------

I have a potential fix, but then the test {{mergeInternalDocAcrossCluster()}} fails. AFAICS this is expected and the test should be changed. The test simulates a two node cluster and does the following:

- on store1 add /:dynHidden and /:dynHidden/c node, merge but do not run background ops
- on store2 add /:dynHidden and merge. this succeeds because the test enables OAK-2673
- on store2 add /:dynHidden/b and try to merge.

The last step fails with my fix, whereas it succeeds currently. I think the merge should fail already now because adding the 'b' child node causes a modification on /:dynHidden, which conflicts with the not yet visible add node operation for /:dynHidden of store1. OAK-2673 only allows some combinations of operations to proceed concurrently.


was (Author: mreutegg):
I have a potential fix, but then the test {{mergeInternalDocAcrossCluster()}} fails. AFAICS this is expected and the test should be changes. The test simulates a two node cluster and does the following:

- on store1 add /:dynHidden and /:dynHidden/c node, merge but do not run background ops
- on store2 add /:dynHidden and merge. this succeeds because the test enables OAK-2673
- on store2 add /:dynHidden/b and try to merge.

The last step fails with my fix, whereas it succeeds currently. I think the merge should fail already now because adding the 'b' child node causes a modification on /:dynHidden, which conflicts with the not yet visible add node operation for /:dynHidden of store1. OAK-2673 only allows some combinations of operations to proceed concurrently.

> Parent of unseen children must not be removable
> -----------------------------------------------
>
>                 Key: OAK-2929
>                 URL: https://issues.apache.org/jira/browse/OAK-2929
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core, mongomk
>    Affects Versions: 1.0.13, 1.2
>            Reporter: Vikas Saurabh
>            Assignee: Marcel Reutegger
>            Priority: Minor
>              Labels: concurrency, technical_debt
>             Fix For: 1.3.6
>
>         Attachments: IgnoredTestCase.patch
>
>
> With OAK-2673, it's now possible to have hidden intermediate nodes created concurrently.
> So, a scenario like:
> {noformat}
> start -> /:hidden
> N1 creates /:hiddent/parent/node1
> N2 creates /:hidden/parent/node2
> {noformat}
> is allowed.
> But, if N2's creation of {{parent}} got persisted later than that on N1, then N2 is currently able to delete {{parent}} even though there's {{node1}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)