[ 
https://issues.apache.org/jira/browse/SOLR-5618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hoss Man updated SOLR-5618:
---------------------------

    Attachment: SOLR-5618.patch

bq. So it seems pretty clear to me that something related to SOLR-5057 is 
causing false cache hits – what isn't entirely clear to me yet is if the 
functionality added in r1516299 is fundamentally flawed (and should be 
reverted), or if it's just exposing some less obvious problem with the 
hashCode/equals methods of these specific query types.

Bug is definitely in the QueryResultKey.isEqual & 
QueryResultKey.unorderedCompare method -- they ensure that fqList1 and fqList2 
are the same size, and that every item from fqList1 exists in fqList2, but they 
don't ensure that there is a 1-to-1 set equivalence between the lists -- So in 
cases where fqList1 contains some query X duplicated N times, it only ensures 
that X is in fqList2, but not that it's duplicated N times, so having some 
other clauses which are not in fqList1 to keep the sizes the same causes false 
positives.

Targeted test case attached ... i'll work on a more robust randomized test 
tomorrow and see if i can figure out an efficinet fix, or if we should just 
revert r1516299 completely.


> Reproducible failure from TestFiltering.testRandomFiltering
> -----------------------------------------------------------
>
>                 Key: SOLR-5618
>                 URL: https://issues.apache.org/jira/browse/SOLR-5618
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Hoss Man
>         Attachments: SOLR-5618.patch, SOLR-5618.patch, SOLR-5618.patch, 
> SOLR-5618.patch
>
>
> uwe's jenkins found this in java8...
> http://jenkins.thetaphi.de/job/Lucene-Solr-trunk-Linux/9004/consoleText
> {noformat}
>    [junit4]   2> NOTE: reproduce with: ant test  -Dtestcase=TestFiltering 
> -Dtests.method=testRandomFiltering -Dtests.seed=C22042E80957AE3E 
> -Dtests.multiplier=3 -Dtests.slow=true -Dtests.locale=ar_LY 
> -Dtests.timezone=Asia/Katmandu -Dtests.file.encoding=UTF-8
>    [junit4] FAILURE 16.9s J1 | TestFiltering.testRandomFiltering <<<
>    [junit4]    > Throwable #1: java.lang.AssertionError: FAILURE: iiter=11 
> qiter=336 request=[q, {!frange v=val_i l=0 u=1 cost=139 tag=t}, fq, {!frange 
> v=val_i l=0 u=1}, fq, {! cost=92}-_query_:"{!frange v=val_i l=1 u=1}", fq, 
> {!frange v=val_i l=0 u=1 cache=true tag=t}, fq, {! cache=true 
> tag=t}-_query_:"{!frange v=val_i l=1 u=1}"]
>    [junit4]    >      at 
> __randomizedtesting.SeedInfo.seed([C22042E80957AE3E:DD43E12DEC70EE37]:0)
>    [junit4]    >      at 
> org.apache.solr.search.TestFiltering.testRandomFiltering(TestFiltering.java:327)
> {noformat}
> The seed fails consistently for me on trunk using java7, and on 4x using both 
> java7 and java6 - details to follow in comment.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to