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