[
https://issues.apache.org/jira/browse/OAK-1233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13833901#comment-13833901
]
Chetan Mehrotra commented on OAK-1233:
--------------------------------------
First note that higher the numeric value means latest the revision is as the
values here are based on zero
So following things would have happened
* On C1 document was split at rev r14298e45a64-0-2 (7087856) *BUT* the highest
revision for property async-status is actually 7082166-0-2
* On C2 document split was done at r14298e4548d-0-1 and the highest rev is same
* On Oak side when the previous revision list is sorted in
NodeDocument#getPreviousRanges it puts the rev list corresponding to
r14298e45a64 *before* r14298e4548d. But actual entries within those two list do
not confirm to the rule of _first element of the next iterator is greater
than the first element of the previous iterator_.
So as a fix we probably need to sort the list obtains in
NodeDocument.getPrevisiousDocs
> IllegalStateException in MergeSortedIterators
> ---------------------------------------------
>
> Key: OAK-1233
> URL: https://issues.apache.org/jira/browse/OAK-1233
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: mongomk
> Affects Versions: 0.12
> Reporter: Chetan Mehrotra
> Assignee: Chetan Mehrotra
> Labels: cluster
> Attachments: revisions.tar.gz
>
>
> While running Oak in a two node clutser following exception is seen. It
> basically comes because the AsynchUpdate tries to update async-status
> concurrently
> {noformat}
> 27.11.2013 17:56:35.507 *ERROR* [pool-5-thread-1]
> org.apache.sling.commons.scheduler.impl.QuartzScheduler Exception during job
> execution of org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate@fcf98c2
> : com.google.common.util.concurrent.UncheckedExecutionException:
> java.lang.IllegalStateException: Revisioned values for property
> 1:/oak:index/async-status: First element of next iterator must be greater
> than previous iterator
> com.google.common.util.concurrent.UncheckedExecutionException:
> com.google.common.util.concurrent.UncheckedExecutionException:
> java.lang.IllegalStateException: Revisioned values for property
> 1:/oak:index/async-status: First element of next iterator must be greater
> than previous iterator
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
> ~[na:na]
> at com.google.common.cache.LocalCache.get(LocalCache.java:3932) ~[na:na]
> at
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4721)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoMK.diff(MongoMK.java:165)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.kernel.KernelNodeState.compareAgainstBaseState(KernelNodeState.java:481)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:52)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.run(AsyncIndexUpdate.java:103)
> ~[na:na]
> at
> org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:105)
> ~[org.apache.sling.commons.scheduler:2.4.2]
> at org.quartz.core.JobRunShell.run(JobRunShell.java:207)
> [org.apache.sling.commons.scheduler:2.4.2]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [na:1.7.0_40]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [na:1.7.0_40]
> at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
> Caused by: com.google.common.util.concurrent.UncheckedExecutionException:
> java.lang.IllegalStateException: Revisioned values for property
> 1:/oak:index/async-status: First element of next iterator must be greater
> than previous iterator
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
> ~[na:na]
> at com.google.common.cache.LocalCache.get(LocalCache.java:3932) ~[na:na]
> at
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4721)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoNodeStore.getNode(MongoNodeStore.java:507)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoMK.diffFewChildren(MongoMK.java:313)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoMK.diffImpl(MongoMK.java:229)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoMK$1.call(MongoMK.java:168)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoMK$1.call(MongoMK.java:165)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4724)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
> ~[na:na]
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
> ~[na:na]
> ... 11 common frames omitted
> Caused by: java.lang.IllegalStateException: Revisioned values for property
> 1:/oak:index/async-status: First element of next iterator must be greater
> than previous iterator
> at
> org.apache.jackrabbit.oak.plugins.mongomk.util.MergeSortedIterators.fetchNextIterator(MergeSortedIterators.java:103)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.util.MergeSortedIterators.next(MergeSortedIterators.java:85)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.NodeDocument.getLatestValue(NodeDocument.java:1041)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.NodeDocument.getNodeAtRevision(NodeDocument.java:456)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoNodeStore.readNode(MongoNodeStore.java:653)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoNodeStore.access$000(MongoNodeStore.java:80)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoNodeStore$2.call(MongoNodeStore.java:510)
> ~[na:na]
> at
> org.apache.jackrabbit.oak.plugins.mongomk.MongoNodeStore$2.call(MongoNodeStore.java:507)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4724)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
> ~[na:na]
> at
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
> ~[na:na]
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
> ~[na:na]
> ... 23 common frames omitted
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.1#6144)