Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

oakState0002: Conflicting concurrent change on branch commits

Avatar

Avatar
Validate 1
Level 2
radhakrishnan72
Level 2

Likes

4 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
Applaud 5
View profile

Avatar
Validate 1
Level 2
radhakrishnan72
Level 2

Likes

4 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
Applaud 5
View profile
radhakrishnan72
Level 2

25-01-2018

Hi everyone,

                     As part of regular deliver of the content to different audiences, assets get published to publishers and unpublished from publishers. I have 3 replication queues for 3 categories of the assets so that no blocking or waiting for each other. I am using replication API to replicate specific category assets to specific replication agent. I do process the metadata of the asset before publishing/unpublishing it and when i say resourceResolver.commit(), i am getting below exception and it is so frequent for many assets. If i reprocess these assets, they work fine without any issue. I am not very sure what exactly the issue here.

org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.

at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.commit(JcrResourceProvider.java:482)

at org.apache.sling.resourceresolver.impl.providers.stateful.AuthenticatedResourceProvider.commit(AuthenticatedResourceProvider.java:215)

at org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl.commit(ResourceResolverControl.java:411)

at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.commit(ResourceResolverImpl.java:1262)

Caused by: javax.jcr.InvalidItemStateException: OakState0002: Conflicting concurrent change on branch commits [r16126faf91f-0-4, r16126fab61d-0-4, r16126f66a91-0-4, ....]

at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:237)

at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:212)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:670)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:496)

at org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.performVoid(SessionImpl.java:419)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:274)

at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:416)

at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.sling.jcr.base.SessionProxyHandler$SessionProxyInvocationHandler.invoke(SessionProxyHandler.java:116)

at com.sun.proxy.$Proxy7.save(Unknown Source)

at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.commit(JcrResourceProvider.java:480)

... 16 common frames omitted

Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakState0002: Conflicting concurrent change on branch commits [r16126faf91f-0-4, r16126fab61d-0-4, r16126f66a91-0-4, ...]

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted.checkForConflicts(DocumentNodeStoreBranch.java:654)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted.access$400(DocumentNodeStoreBranch.java:529)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted$1.call(DocumentNodeStoreBranch.java:589)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted$1.call(DocumentNodeStoreBranch.java:586)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.withCurrentBranch(DocumentNodeStoreBranch.java:307)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.access$600(DocumentNodeStoreBranch.java:57)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$Persisted.merge(DocumentNodeStoreBranch.java:586)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:182)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:118)

at org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:159)

at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1653)

at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:247)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:347)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:494)

... 25 common frames omitted

I really appreciate for any suggestion here!

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Coach
Employee
Jörg_Hoh
Employee

Likes

1,087 likes

Total Posts

3,121 posts

Correct Reply

1,063 solutions
Top badges earned
Coach
Give back 600
Ignite 5
Ignite 3
Ignite 1
View profile

Avatar
Coach
Employee
Jörg_Hoh
Employee

Likes

1,087 likes

Total Posts

3,121 posts

Correct Reply

1,063 solutions
Top badges earned
Coach
Give back 600
Ignite 5
Ignite 3
Ignite 1
View profile
Jörg_Hoh
Employee

25-01-2018

Hi,

> Caused by: javax.jcr.InvalidItemStateException: OakState0002: Conflicting concurrent change on branch commits [r16126faf91f-0-4, r16126fab61d-0-4, r16126f66a91-0-4, ....]

That's the problem. You have 2 sessions which want to change the same thing at a time. Given the stacktrace it's not apparent at which area this happens. Could it be that the replication agent updates the replication status in the meanwhile while your session is still open?

Enable JCR write logging can help you to pinpoint the thread which is writing at the same location: What is writing to my Oak repository? | Things on a content management system

Jörg

Answers (1)

Answers (1)

Avatar

Avatar
Validate 1
Level 2
radhakrishnan72
Level 2

Likes

4 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
Applaud 5
View profile

Avatar
Validate 1
Level 2
radhakrishnan72
Level 2

Likes

4 likes

Total Posts

28 posts

Correct Reply

0 solutions
Top badges earned
Validate 1
Boost 3
Boost 1
Applaud 5
View profile
radhakrishnan72
Level 2

26-01-2018

Hi  Jörg Hoh​,

                      thanks for your quick reply here. I set up this log, analyze and update here.

Thanks & Regards,

Radhakrishna.