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)