[
https://issues.apache.org/jira/browse/SLING-10418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17358627#comment-17358627
]
Joerg Hoh commented on SLING-10418:
-----------------------------------
I provided a PR at
https://github.com/apache/sling-org-apache-sling-jcr-repoinit/pull/18
[~bdelacretaz]: Can you please review the patch?
//CC [~egli]
> repoinit should retry on exceptions
> -----------------------------------
>
> Key: SLING-10418
> URL: https://issues.apache.org/jira/browse/SLING-10418
> Project: Sling
> Issue Type: New Feature
> Components: Repoinit
> Affects Versions: Repoinit JCR 1.1.32
> Reporter: Joerg Hoh
> Priority: Major
> Fix For: Repoinit JCR 1.1.36
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Due to some rare race condition we observed an InvalidItemStateException in
> repoinit. In such cases it makes sense to retry the operation up to 3 times
> (maybe with exponential backoff). Just throwing an exception and breaking the
> startup doesn't feel right.
> {noformat}
> [Apache Sling Repository Startup Thread #1]
> com.adobe.granite.repository.impl.SlingRepositoryManager Exception in a
> SlingRepositoryInitializer, SlingRepository service registration aborted
> java.lang.RuntimeException: Session.save failed:
> javax.jcr.InvalidItemStateException: OakState0001: Unresolved conflicts in
> /home/groups/site
> at
> org.apache.sling.jcr.repoinit.impl.AclVisitor.visitCreatePath(AclVisitor.java:154)
> [org.apache.sling.jcr.repoinit:1.1.32]
> at
> org.apache.sling.repoinit.parser.operations.CreatePath.accept(CreatePath.java:48)
> [org.apache.sling.repoinit.parser:1.6.6]
> at
> org.apache.sling.jcr.repoinit.impl.JcrRepoInitOpsProcessorImpl.apply(JcrRepoInitOpsProcessorImpl.java:56)
> [org.apache.sling.jcr.repoinit:1.1.32]
> at
> org.apache.sling.jcr.repoinit.impl.RepositoryInitializerFactory.processRepository(RepositoryInitializerFactory.java:126)
> [org.apache.sling.jcr.repoinit:1.1.32]
> at
> org.apache.sling.jcr.base.AbstractSlingRepositoryManager.executeRepositoryInitializers(AbstractSlingRepositoryManager.java:610)
> [org.apache.sling.jcr.base:3.1.6]
> at
> org.apache.sling.jcr.base.AbstractSlingRepositoryManager.initializeAndRegisterRepositoryService(AbstractSlingRepositoryManager.java:558)
> [org.apache.sling.jcr.base:3.1.6]
> at
> org.apache.sling.jcr.base.AbstractSlingRepositoryManager.access$300(AbstractSlingRepositoryManager.java:92)
> [org.apache.sling.jcr.base:3.1.6]
> at
> org.apache.sling.jcr.base.AbstractSlingRepositoryManager$4.run(AbstractSlingRepositoryManager.java:527)
> [org.apache.sling.jcr.base:3.1.6]
> Caused by: javax.jcr.InvalidItemStateException: OakState0001: Unresolved
> conflicts in /home/groups/site
> at
> org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:238)
> [org.apache.jackrabbit.oak-api:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.api.CommitFailedException.asRepositoryException(CommitFailedException.java:213)
> [org.apache.jackrabbit.oak-api:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.newRepositoryException(SessionDelegate.java:684)
> [org.apache.jackrabbit.oak-jcr:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:505)
> [org.apache.jackrabbit.oak-jcr:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.jcr.session.SessionImpl$8.performVoid(SessionImpl.java:424)
> [org.apache.jackrabbit.oak-jcr:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:275)
> [org.apache.jackrabbit.oak-jcr:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:421)
> [org.apache.jackrabbit.oak-jcr:1.39.0.R1888564]
> at
> com.adobe.granite.repository.impl.CRX3SessionImpl.save(CRX3SessionImpl.java:207)
> [com.adobe.granite.repository:1.6.126]
> at
> org.apache.sling.jcr.repoinit.impl.AclVisitor.visitCreatePath(AclVisitor.java:152)
> [org.apache.sling.jcr.repoinit:1.1.32]
> ... 7 common frames omitted
> Caused by: org.apache.jackrabbit.oak.api.CommitFailedException: OakState0001:
> Unresolved conflicts in /home/groups/site
> at
> org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.failOnMergeConflict(ConflictValidator.java:115)
> [org.apache.jackrabbit.oak-core:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.propertyAdded(ConflictValidator.java:84)
> [org.apache.jackrabbit.oak-core:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.CompositeEditor.propertyAdded(CompositeEditor.java:82)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.propertyAdded(EditorDiff.java:81)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:394)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:416)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:416)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.composite.CompositeNodeState$WrappingDiff.childNodeChanged(CompositeNodeState.java:309)
> [org.apache.jackrabbit.oak-store-composite:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.composite.CompositeNodeState$ChildrenDiffFilter.childNodeChanged(CompositeNodeState.java:256)
> [org.apache.jackrabbit.oak-store-composite:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:416)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.document.ModifiedDocumentNodeState.compareAgainstBaseState(ModifiedDocumentNodeState.java:132)
> [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.composite.CompositeNodeState.compareAgainstBaseState(CompositeNodeState.java:163)
> [org.apache.jackrabbit.oak-store-composite:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:51)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorHook.processCommit(EditorHook.java:54)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60)
> [org.apache.jackrabbit.oak-store-spi:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.composite.CommitHookEnhancer.processCommit(CommitHookEnhancer.java:55)
> [org.apache.jackrabbit.oak-store-composite:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.document.TimingHook.processCommit(TimingHook.java:59)
> [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:542)
> [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:197)
> [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:121)
> [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:170)
> [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1991)
> [org.apache.jackrabbit.oak-store-document:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.composite.CompositeNodeStore.merge(CompositeNodeStore.java:151)
> [org.apache.jackrabbit.oak-store-composite:1.39.0.R1888564]
> at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:252)
> [org.apache.jackrabbit.oak-core:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:348)
> [org.apache.jackrabbit.oak-jcr:1.39.0.R1888564]
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:503)
> [org.apache.jackrabbit.oak-jcr:1.39.0.R1888564]
> ... 12 common frames omitted
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)