lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tim Underwood (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-7674) java.lang.IllegalStateException: Child query must not match same docs with parent filter. Combine them as must clauses (+) to find a problem doc. docId=2147483647, class org.apache.lucene.search.ConjunctionScorer
Date Fri, 03 Feb 2017 18:13:51 GMT

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

Tim Underwood commented on LUCENE-7674:
---------------------------------------

Thanks [~mkhludnev]!  Running CheckJoinIndex on my bad index (assuming I got my parentsFilter
right) says:

{code}
java.lang.IllegalStateException: Parent doc 3324040 of segment _vfo(6.3.0):C28035360/10475131:delGen=86
is deleted but has a live child document 3323449
{code}

Running CheckJoinIndex on the optimized version of the index doesn't complain.

So... that leaves me wondering where the bug is.  I am frequently (via Solr) re-indexing parent/child
documents that duplicate existing documents based on my unique key field but my understanding
is that Solr should automatically delete the old parent and child documents for me.  Maybe
thats a bad assumption.

It looks like maybe I'm running into one or more of these issues: SOLR-5211, SOLR-5772, SOLR-6096,
SOLR-6596, SOLR-6700

Sounds like I should probably just make sure I explicitly delete any old parent/child documents
that I'm replacing to be on the safe side.

> java.lang.IllegalStateException: Child query must not match same docs with parent filter.
Combine them as must clauses (+) to find a problem doc. docId=2147483647, class org.apache.lucene.search.ConjunctionScorer
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-7674
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7674
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 6.3
>            Reporter: Tim Underwood
>
> Started seeing this error message on a production Solr 6.3.0 system today making use
of parent/child documents:
> {code}
> java.lang.IllegalStateException: Child query must not match same docs with parent filter.
Combine them as must clauses (+) to find a problem doc. docId=2147483647, class org.apache.lucene.search.ConjunctionScorer
>     at org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.checkOrthogonal(ToParentBlockJoinQuery.java:403)
>     at org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer.access$400(ToParentBlockJoinQuery.java:206)
>     at org.apache.lucene.search.join.ToParentBlockJoinQuery$BlockJoinScorer$1.nextDoc(ToParentBlockJoinQuery.java:327)
>     at org.apache.lucene.search.Weight$DefaultBulkScorer.scoreAll(Weight.java:219)
>     at org.apache.lucene.search.Weight$DefaultBulkScorer.score(Weight.java:172)
>     at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:39)
>     at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:669)
>     at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:473)
>     at org.apache.solr.search.DocSetUtil.createDocSetGeneric(DocSetUtil.java:106)
>     at org.apache.solr.search.DocSetUtil.createDocSet(DocSetUtil.java:95)
>     at org.apache.solr.search.SolrIndexSearcher.getDocSetNC(SolrIndexSearcher.java:1379)
>     at org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher.java:1057)
>     at org.apache.solr.search.SolrIndexSearcher.getProcessedFilter(SolrIndexSearcher.java:1227)
>     at org.apache.solr.search.SolrIndexSearcher.getDocListAndSetNC(SolrIndexSearcher.java:1842)
>     at org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1616)
>     at org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:617)
>     at org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:531)
>     at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:295)
>     at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:153)
>     at org.apache.solr.core.SolrCore.execute(SolrCore.java:2213)
>     at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:654)
>     at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:460)
>     at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:303)
>     at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:254)
>     at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
>     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>     at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
>     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
>     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160)
>     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)
>     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
>     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092)
>     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>     at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
>     at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
>     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
>     at org.eclipse.jetty.server.Server.handle(Server.java:518)
>     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)
>     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)
>     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
>     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
>     at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
>     at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)
>     at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)
>     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
>     at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>     at java.lang.Thread.run(Thread.java:745)
> {code}
> The "docId=2147483647" part seems suspicious since that corresponds to Integer.MAX_VALUE
and my index only has 102,013,289 docs in it.  According to the Solr searcher stats page I
have:
> numDocs: 71,870,998
> maxDocs: 102,013,289
> deletedDocs: 30,142,291
> I took the query that was failing and attempted to intersect my parent query with the
child query to find any problem docs but that came back with 0 results.
> After performing an optimize (via the Solr UI) on the index the problem has gone away
and the query that previously triggered this error works as it should.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message