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

Alex Parvulescu commented on OAK-2794:
--------------------------------------

duplicate of OAK-2569?

> Lucene index: after.doc exceeds the number of documents in the reader
> ---------------------------------------------------------------------
>
>                 Key: OAK-2794
>                 URL: https://issues.apache.org/jira/browse/OAK-2794
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: lucene, query
>            Reporter: Thomas Mueller
>
> The following exception can occur:
> {noformat}
> java.lang.IllegalArgumentException: after.doc exceeds the number of documents 
> in the reader: after.doc=2027462 limit=2027455
>         at 
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:442)
>         at 
> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:243)
>         at 
> org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$1.loadDocs(LuceneIndex.java:352)
>         at 
> org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$1.computeNext(LuceneIndex.java:292)
>         at 
> org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$1.computeNext(LuceneIndex.java:283)
>         at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
>         at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
>         at 
> org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$LucenePathCursor$1.hasNext(LuceneIndex.java:1062)
>         at 
> com.google.common.collect.Iterators$7.computeNext(Iterators.java:645)
>         at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
>         at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
>         at 
> org.apache.jackrabbit.oak.spi.query.Cursors$PathCursor.hasNext(Cursors.java:198)
>         at 
> org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndex$LucenePathCursor.hasNext(LuceneIndex.java:1083)
>         at 
> org.apache.jackrabbit.oak.plugins.index.aggregate.AggregationCursor.fetchNext(AggregationCursor.java:88)
>         at 
> org.apache.jackrabbit.oak.plugins.index.aggregate.AggregationCursor.hasNext(AggregationCursor.java:75)
>         at 
> org.apache.jackrabbit.oak.spi.query.Cursors$IntersectionCursor.fetchNext(Cursors.java:403)
>         at 
> org.apache.jackrabbit.oak.spi.query.Cursors$IntersectionCursor.hasNext(Cursors.java:381)
>         at 
> org.apache.jackrabbit.oak.query.ast.SelectorImpl.next(SelectorImpl.java:401)
>         at 
> org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.fetchNext(QueryImpl.java:664)
>         at 
> org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.hasNext(QueryImpl.java:689)
>         at 
> org.apache.jackrabbit.oak.query.FilterIterators$SortIterator.init(FilterIterators.java:203)
>         at 
> org.apache.jackrabbit.oak.query.FilterIterators$SortIterator.hasNext(FilterIterators.java:237)
>         at 
> org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.fetch(QueryResultImpl.java:108)
>         at 
> org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.<init>(QueryResultImpl.java:104)
>         at 
> org.apache.jackrabbit.oak.jcr.query.QueryResultImpl.getRows(QueryResultImpl.java:91)
>         at 
> org.apache.jackrabbit.commons.query.GQL.executeJcrQuery(GQL.java:440)
>         at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:434)
>         at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:327)
>         at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:310)
>         at org.apache.jackrabbit.commons.query.GQL.execute(GQL.java:296)
> {noformat}
> I guess the reason is that the "lastDoc" is part of the iterator, but the 
> "IndexSearcher" is not always the same, so that if there were changes in the 
> meantime, the "lastDoc" does not correspond to this "IndexSearcher". This 
> might mean the query result is sometimes wrong (matches are not returned, or 
> returned twice).



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

Reply via email to