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

Yonik Seeley edited comment on SOLR-7990 at 9/3/15 3:52 PM:
------------------------------------------------------------

Here's a patch that should fix the filter issue.

The bad code was in getDocSetNC (I have since moved that code to DocSetUtil) 
that caught the exception and logged a warning but did nothing else.

Since we don't know the context that the DocSet will be used in, we can't catch 
the exception there.  It may be cached later.  It may even be negated - there 
are multiple places this can happen, such as a pure-negative filter query.  In 
that case, terminating early could result in matching documents that would 
otherwise have never matched!

Here's a simple match removing the exception swallow.

edit: this isn't a complete patch - I haven't run tests, and I don't know if 
this breaks other tests.


was (Author: ysee...@gmail.com):
Here's a patch that should fix the filter issue.

The bad code was in getDocSetNC (I have since moved that code to DocSetUtil) 
that caught the exception and logged a warning but did nothing else.

Since we don't know the context that the DocSet will be used in, we can't catch 
the exception there.  It may be cached later.  It may even be negated - there 
are multiple places this can happen, such as a pure-negative filter query.  In 
that case, terminating early could result in matching documents that would 
otherwise have never matched!

Here's a simple match removing the exception swallow.

> timeAllowed is returning wrong results on the same query submitted with 
> different timeAllowed limits
> ----------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-7990
>                 URL: https://issues.apache.org/jira/browse/SOLR-7990
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 5.2.1, Trunk, 5.4
>            Reporter: Erick Erickson
>            Assignee: Erick Erickson
>         Attachments: SOLR-7990.patch, SOLR-7990.patch, 
> SOLR-7990_filterFix.patch
>
>
> William Bell raised a question on the user's list. The scenario is
> > send a query that exceeds timeAllowed
> > send another identical query with larger timeAllowed that does NOT time out
> The results from the second query are not correct, they reflect the doc count 
> from the first query.
> It apparently has to do with filter queries being inappropriately created and 
> re-used. I've attached a test case that illustrates the problem.
> There are three tests here. 
> testFilterSimpleCase shows the problem.
> testCacheAssumptions is my hack at what I _think_ the states of the caches 
> should be, but has a bunch of clutter so I'm Ignoring it for now. This should 
> be un-ignored and testFilterSimpleCase removed when there's any fix proposed. 
> The assumptions may not be correct though.
> testQueryResults shows what I think is a problem, the second call that does 
> NOT exceed timeAllowed still reports partial results.



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

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

Reply via email to