jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcel Reutegger (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-6610) Document Node Store Merge Conflit for concurrent requests
Date Mon, 04 Sep 2017 07:17:00 GMT

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

Marcel Reutegger commented on OAK-6610:
---------------------------------------

This may be caused by slow synchronization between the cluster nodes due to the high load
on the system. Do you see INFO messages in the logs like the following?
{noformat}
04.09.2017 09:08:13.330 *INFO* [DocumentNodeStore background read thread (3)] org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore
Background read operations stats (read:12896 ReadStats{cacheStats:NOP, head:1, cache:14, diff:
29, lock:92, dispatch:25, numExternalChanges:38, totalReadTime:12896})
{noformat}
Such info messages indicate that changes from other cluster nodes take more than 10 seconds
to become visible on the local cluster node, which increases chances of conflicting changes.
Oak does not allow overwriting of changes that are not yet visible to the local cluster node.
This is what the {{r15e386e44fb-0-5 (not yet visible)}} part of the exception message says.
The local cluster node with id 4 tried to change /content/Draft/Content/Intuit/Tax/All/Article/FAQ
in a way that conflicts with a change done one cluster node with id 5, not yet visible on
the local cluster node.

> Document Node Store Merge Conflit for concurrent requests
> ---------------------------------------------------------
>
>                 Key: OAK-6610
>                 URL: https://issues.apache.org/jira/browse/OAK-6610
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: documentmk
>    Affects Versions: 1.6.4
>            Reporter: Satish kumar chitikena
>            Priority: Blocker
>
> When we are running the performance test Document MK throwing the exception saying Merge
conflict .
> We have 3 JCR instances talking to only one MongoDB primary .  How to handle concurrent
requests 
> /content/Draft/Content/Intuit/Tax/All/Article/FAQ   , This node not versionable Node
 but why it is looking for base revision and modified revision etc.
> NTP time sync is enabled .
> 31.08.2017 06:15:21.545 *ERROR* [127.0.0.1 [1504185184379] POST /content/Draft/Content/Intuit/Tax/All/Article/FAQ/LV3xQqZdJ/US/en_US
HTTP/1.1] org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during
response processing.
> 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:490)
> 	at org.apache.sling.resourceresolver.impl.providers.stateful.AuthenticatedResourceProvider.commit(AuthenticatedResourceProvider.java:215)
> 	at org.apache.sling.resourceresolver.impl.helper.ResourceResolverControl.commit(ResourceResolverControl.java:421)
> 	at org.apache.sling.resourceresolver.impl.ResourceResolverImpl.commit(ResourceResolverImpl.java:1177)
> 	at org.apache.sling.servlets.post.impl.operations.AbstractPostOperation.run(AbstractPostOperation.java:164)
> 	at org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:228)
> 	at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:149)
> 	at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:346)
> 	at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:378)
> 	at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552)
> 	at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:77)
> 	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282)
> 	at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:77)
> 	at com.intuit.cas.extension.CSRFilterServlet.doFilter(CSRFilterServlet.java:57)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:107)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:138)
> 	at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68)
> 	at org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:151)
> 	at org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:234)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:85)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:79)
> 	at org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:89)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
> 	at org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:138)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
> 	at org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:72)
> 	at org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:135)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:74)
> 	at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:128)
> 	at org.apache.felix.http.base.internal.dispatch.DispatcherServlet.service(DispatcherServlet.java:49)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> 	at org.apache.felix.http.bridge.internal.BridgeActivator$1.service(BridgeActivator.java:83)
> 	at org.apache.felix.http.proxy.ProxyServlet.service(ProxyServlet.java:123)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
> 	at org.apache.sling.launchpad.base.webapp.SlingServletDelegate.service(SlingServletDelegate.java:286)
> 	at org.apache.sling.launchpad.webapp.SlingServlet.service(SlingServlet.java:175)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
> 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
> 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
> 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
> 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> 	at java.lang.Thread.run(Thread.java:748)
> Caused by: javax.jcr.InvalidItemStateException: OakMerge0004: OakMerge0004: Following
exceptions occurred during the bulk update operations: [org.apache.jackrabbit.oak.plugins.document.ConflictException:
The node 8:/content/Draft/Content/Intuit/Tax/All/Article/FAQ was changed in revision
> r15e386e44fb-0-5 (not yet visible), which was applied after the base revision
> r15e37c66fdd-0-1,r15e37c5653f-0-2,r15e37c5e3ce-0-3,r15e386e4baa-0-4,r15e386e2f73-0-5,r15e386d9475-0-6,
before
> r15e386e75b8-0-4] (retries 5, 60998 ms)
> 	at org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:239)
> 	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 org.apache.sling.jcr.oak.server.internal.TcclWrappingJackrabbitSession.save(TcclWrappingJackrabbitSession.java:212)
> 	at org.apache.sling.jcr.resource.internal.helper.jcr.JcrResourceProvider.commit(JcrResourceProvider.java:488)
> 	... 62 common frames omitted
> Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakMerge0004: OakMerge0004:
Following exceptions occurred during the bulk update operations: [org.apache.jackrabbit.oak.plugins.document.ConflictException:
The node 8:/content/Draft/Content/Intuit/Tax/All/Article/FAQ was changed in revision
> r15e386e44fb-0-5 (not yet visible), which was applied after the base revision
> r15e37c66fdd-0-1,r15e37c5653f-0-2,r15e37c5e3ce-0-3,r15e386e4baa-0-4,r15e386e2f73-0-5,r15e386d9475-0-6,
before
> r15e386e75b8-0-4] (retries 5, 60998 ms)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:208)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:127)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:167)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1694)
> 	at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:249)
> 	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:347)
> 	at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:494)
> 	... 67 common frames omitted
> Caused by: org.apache.jackrabbit.oak.plugins.document.ConflictException: Following exceptions
occurred during the bulk update operations: [org.apache.jackrabbit.oak.plugins.document.ConflictException:
The node 8:/content/Draft/Content/Intuit/Tax/All/Article/FAQ was changed in revision
> r15e386e44fb-0-5 (not yet visible), which was applied after the base revision
> r15e37c66fdd-0-1,r15e37c5653f-0-2,r15e37c5e3ce-0-3,r15e386e4baa-0-4,r15e386e2f73-0-5,r15e386d9475-0-6,
before
> r15e386e75b8-0-4]
> 	at org.apache.jackrabbit.oak.plugins.document.Commit.checkConflicts(Commit.java:552)
> 	at org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:309)
> 	at org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:241)
> 	at org.apache.jackrabbit.oak.plugins.document.Commit.applyInternal(Commit.java:210)
> 	at org.apache.jackrabbit.oak.plugins.document.Commit.apply(Commit.java:199)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:298)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:268)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.access$300(DocumentNodeStoreBranch.java:58)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:513)
> 	at org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:185)
> 	... 73 common frames omitted



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message