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

Amit Jain commented on OAK-2961:
--------------------------------

I think these warnings are fine. I debugged a little and these warnings seemed 
to be caused by:
* A checkpoint of a successful async thread run being visible to 2 subsequent 
threads.
* And one of these releasing the checkpoint after its successful run and the 
2nd trying to read the checkpoint which has already been released.

Relevant logs:
{noformat}
10:51:40.025 DEBUG [oak-scheduled-executor-12] AsyncIndexUpdate.java:265 
[async] Running background index task
10:51:40.030 INFO  [oak-scheduled-executor-12] AsyncIndexUpdate.java:319 Marked 
checkpointToRelease afterCheckpoint [r14e292a0ad4-1-4]
10:51:41.037 INFO  [oak-scheduled-executor-12] AsyncIndexUpdate.java:432 
[async] Reindexing completed for indexes: [/oak:index/asyncconflict*(0)] in 
1.007 s
10:51:41.040 INFO  [oak-scheduled-executor-12] AsyncIndexUpdate.java:334 Marked 
checkpointToRelease beforeCheckpoint [r14e2929faff-0-1]
10:51:41.040 INFO  [oak-scheduled-executor-12] AsyncIndexUpdate.java:351 
[r14e2929faff-0-1] checkpoint to release
10:51:45.953 DEBUG [oak-scheduled-executor-19] AsyncIndexUpdate.java:265 
[async] Running background index task
10:51:45.956 INFO  [oak-scheduled-executor-19] AsyncIndexUpdate.java:319 Marked 
checkpointToRelease afterCheckpoint [r14e292a1a05-1-3]
10:51:45.956 DEBUG [oak-scheduled-executor-19] AsyncIndexUpdate.java:221 
[async] Releasing temporary checkpoint r14e2929faff-0-1: true
10:51:45.970 DEBUG [oak-scheduled-executor-19] AsyncIndexUpdate.java:447 
[async] AsyncIndex update run completed in 14.37 ms. Indexed 0 nodes
10:51:45.971 INFO  [oak-scheduled-executor-19] AsyncIndexUpdate.java:334 Marked 
checkpointToRelease beforeCheckpoint [r14e292a0ad4-1-4]
10:51:46.042 DEBUG [oak-scheduled-executor-18] AsyncIndexUpdate.java:265 
[async] Running background index task
10:51:46.042 WARN  [oak-scheduled-executor-18] AsyncIndexUpdate.java:286 
[async] Failed to retrieve previously indexed checkpoint r14e292a0ad4-1-4; 
re-running the initial index update
10:51:46.043 INFO  [oak-scheduled-executor-18] AsyncIndexUpdate.java:319 Marked 
checkpointToRelease afterCheckpoint [r14e292a16af-0-4]
10:51:46.043 DEBUG [oak-scheduled-executor-18] AsyncIndexUpdate.java:221 
[async] Releasing temporary checkpoint r14e2929faff-0-1: true
10:51:46.046 DEBUG [oak-scheduled-executor-18] AsyncIndexUpdate.java:221 
[async] Releasing temporary checkpoint r14e292a0ad4-1-4: true
{noformat}

> Async index fails with OakState0001: Unresolved conflicts in /:async
> --------------------------------------------------------------------
>
>                 Key: OAK-2961
>                 URL: https://issues.apache.org/jira/browse/OAK-2961
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: mongomk, query
>    Affects Versions: 1.2.2, 1.0.14, 1.4
>            Reporter: Davide Giannella
>            Assignee: Davide Giannella
>              Labels: resilience
>             Fix For: 1.2.3, 1.3.2
>
>         Attachments: OAK-2961.patch
>
>
> When running on a mongo cluster, in case of high activity the async index 
> could fail with the following exception.
> Reproduced with LucenePropertyIndex.
> {noformat}
> 10:55:13.069 [oak-scheduled-executor-5] WARN  
> o.a.j.o.p.index.AsyncIndexUpdate - [async] The index update failed
> org.apache.jackrabbit.oak.api.CommitFailedException: OakState0001: Unresolved 
> conflicts in /:async
>       at 
> org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.failOnMergeConflict(ConflictValidator.java:84)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.commit.ConflictValidator.propertyAdded(ConflictValidator.java:54)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.propertyAdded(EditorDiff.java:82)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:378)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:148)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState.compareAgainstBaseState(ModifiedNodeState.java:400)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:52) 
> ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.spi.commit.EditorHook.processCommit(EditorHook.java:55)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:61)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:528)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:219)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:171)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:158)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1466)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.mergeWithConcurrencyCheck(AsyncIndexUpdate.java:467)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.access$4(AsyncIndexUpdate.java:445)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate$AsyncUpdateCallback.<init>(AsyncIndexUpdate.java:201)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.updateIndex(AsyncIndexUpdate.java:372)
>  ~[classes/:na]
>       at 
> org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.run(AsyncIndexUpdate.java:320)
>  ~[classes/:na]
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
> [na:1.7.0_60]
>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 
> [na:1.7.0_60]
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
>  [na:1.7.0_60]
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>  [na:1.7.0_60]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_60]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_60]
>       at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to