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

Thomas Mueller commented on OAK-333:
------------------------------------

I confirmed with Chetan that the patch above should work. I still get an 
exception running the IT tests, but I think that is not related to this issue:

{noformat}
Tests in error: 
  addNodes2(org.apache.jackrabbit.oak.jcr.ConcurrentAddNodesClusterIT): 
OakMerge0002: OakMerge0002: Conflicting concurrent change. Update operation 
failed: key: 0:/ update {_revisions.r144d9c56ca0-0-1=SET_MAP_ENTRY 
c-r144d9c59f99-4-1, _modified=SET 279044602, 
_collisions.r144d9c56ba2-0-1=CONTAINS_MAP_ENTRY false, 
_collisions.r144d9c56c9c-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56bb8-0-1=SET_MAP_ENTRY c-r144d9c59f99-2-1, 
_collisions.r144d9c59efd-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56bb0-0-1=SET_MAP_ENTRY c-r144d9c59f99-1-1, 
_revisions.r144d9c59efd-0-1=SET_MAP_ENTRY c-r144d9c59f99-5-1, 
_collisions.r144d9c56bb0-0-1=CONTAINS_MAP_ENTRY false, 
_collisions.r144d9c56ca0-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56ba2-0-1=SET_MAP_ENTRY c-r144d9c59f99-0-1, 
_collisions.r144d9c56bb8-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56c9c-0-1=SET_MAP_ENTRY c-r144d9c59f99-3-1} (retries 4, 6333 
ms)

Running org.apache.jackrabbit.oak.jcr.ConcurrentAddNodesClusterIT
Tests run: 4, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 33.062 sec <<< 
FAILURE!
addNodes2(org.apache.jackrabbit.oak.jcr.ConcurrentAddNodesClusterIT)  Time 
elapsed: 16.896 sec  <<< ERROR!
javax.jcr.RepositoryException: OakMerge0002: OakMerge0002: Conflicting 
concurrent change. Update operation failed: key: 0:/ update 
{_revisions.r144d9c56ca0-0-1=SET_MAP_ENTRY c-r144d9c59f99-4-1, _modified=SET 
279044602, _collisions.r144d9c56ba2-0-1=CONTAINS_MAP_ENTRY false, 
_collisions.r144d9c56c9c-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56bb8-0-1=SET_MAP_ENTRY c-r144d9c59f99-2-1, 
_collisions.r144d9c59efd-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56bb0-0-1=SET_MAP_ENTRY c-r144d9c59f99-1-1, 
_revisions.r144d9c59efd-0-1=SET_MAP_ENTRY c-r144d9c59f99-5-1, 
_collisions.r144d9c56bb0-0-1=CONTAINS_MAP_ENTRY false, 
_collisions.r144d9c56ca0-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56ba2-0-1=SET_MAP_ENTRY c-r144d9c59f99-0-1, 
_collisions.r144d9c56bb8-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56c9c-0-1=SET_MAP_ENTRY c-r144d9c59f99-3-1} (retries 4, 6333 
ms)
        at 
org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:247)
        at 
org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:212)
        at 
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:617)
        at 
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:502)
        at 
org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.perform(SessionImpl.java:414)
        at 
org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.perform(SessionImpl.java:411)
        at 
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:263)
        at 
org.apache.jackrabbit.oak.jcr.session.SessionImpl.perform(SessionImpl.java:124)
        at 
org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:411)
        at 
org.apache.jackrabbit.oak.jcr.ConcurrentAddNodesClusterIT.addNodes2(ConcurrentAddNodesClusterIT.java:213)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
        at 
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
        at 
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
        at 
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
        at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0002: 
OakMerge0002: Conflicting concurrent change. Update operation failed: key: 0:/ 
update {_revisions.r144d9c56ca0-0-1=SET_MAP_ENTRY c-r144d9c59f99-4-1, 
_modified=SET 279044602, _collisions.r144d9c56ba2-0-1=CONTAINS_MAP_ENTRY false, 
_collisions.r144d9c56c9c-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56bb8-0-1=SET_MAP_ENTRY c-r144d9c59f99-2-1, 
_collisions.r144d9c59efd-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56bb0-0-1=SET_MAP_ENTRY c-r144d9c59f99-1-1, 
_revisions.r144d9c59efd-0-1=SET_MAP_ENTRY c-r144d9c59f99-5-1, 
_collisions.r144d9c56bb0-0-1=CONTAINS_MAP_ENTRY false, 
_collisions.r144d9c56ca0-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56ba2-0-1=SET_MAP_ENTRY c-r144d9c59f99-0-1, 
_collisions.r144d9c56bb8-0-1=CONTAINS_MAP_ENTRY false, 
_revisions.r144d9c56c9c-0-1=SET_MAP_ENTRY c-r144d9c59f99-3-1} (retries 4, 6333 
ms)
        at 
org.apache.jackrabbit.oak.spi.state.AbstractNodeStoreBranch.merge(AbstractNodeStoreBranch.java:304)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:143)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:147)
        at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1212)
        at 
org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:242)
        at 
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:357)
        at 
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:500)
        ... 38 more


{noformat}

> 1000 byte path limit in MongoMK
> -------------------------------
>
>                 Key: OAK-333
>                 URL: https://issues.apache.org/jira/browse/OAK-333
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: mongomk
>    Affects Versions: 0.5
>            Reporter: Mete Atamel
>            Assignee: Thomas Mueller
>            Priority: Minor
>             Fix For: 0.19
>
>         Attachments: NodeNameLimitsTest.java, OAK-333.patch
>
>
> In an infinite loop try to add nodes one under another to have N0/N1/N2...NN. 
> At some point, the current parent node will not be found and the current 
> commit will fail. I think this happens when the path length exceeds 1000 
> characters. Is this enough for a path? I was able to create this way only 222 
> levels in the tree (and my node names were really short N1, N2 ...)
> There's an automated tests for this: NodeExistsCommandMongoTest.testTreeDepth



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to