You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Tomoko Uchida (Jira)" <ji...@apache.org> on 2022/06/04 14:53:00 UTC

[jira] [Reopened] (LUCENE-10589) Fix corner case in TestKnnVectorQuery.testRandomWithFilter

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

Tomoko Uchida reopened LUCENE-10589:
------------------------------------

The same failure happened with another seed and multiplier.
{code}
./gradlew test --tests TestKnnVectorQuery.testRandomWithFilter -Dtests.seed=3B57C037BA146B7A -Dtests.multiplier=3
{code}
{code}
org.apache.lucene.search.TestKnnVectorQuery > test suite's output saved to /mnt/hdd/repo/lucene/lucene/core/build/test-results/test/outputs/OUTPUT-org.apache.lucene.search.TestKnnVectorQuery.txt, copied below:
   >     java.lang.UnsupportedOperationException: exact search is not supported
   >         at __randomizedtesting.SeedInfo.seed([3B57C037BA146B7A:4D1E99BCB0E0ADDF]:0)
   >         at org.apache.lucene.search.TestKnnVectorQuery$ThrowingKnnVectorQuery.exactSearch(TestKnnVectorQuery.java:715)
   >         at org.apache.lucene.search.KnnVectorQuery.searchLeaf(KnnVectorQuery.java:151)
   >         at org.apache.lucene.search.KnnVectorQuery.rewrite(KnnVectorQuery.java:108)
   >         at org.apache.lucene.search.ConstantScoreQuery.rewrite(ConstantScoreQuery.java:44)
   >         at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:789)
   >         at org.apache.lucene.tests.search.AssertingIndexSearcher.rewrite(AssertingIndexSearcher.java:69)
   >         at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:803)
   >         at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:685)
   >         at org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:667)
   >         at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:584)
   >         at org.apache.lucene.search.TestKnnVectorQuery.testRandomWithFilter(TestKnnVectorQuery.java:556)
{code}

I have little time right now but just wanted to reopen this. Will take a look some time later (if anyone else does not find a quick fix until then).

> Fix corner case in TestKnnVectorQuery.testRandomWithFilter
> ----------------------------------------------------------
>
>                 Key: LUCENE-10589
>                 URL: https://issues.apache.org/jira/browse/LUCENE-10589
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Tomoko Uchida
>            Priority: Minor
>             Fix For: 10.0 (main), 9.3
>
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> {{TestKnnVectorQuery.testRandomWithFilter}} can fail with java.lang.UnsupportedOperationException.
> Reproducible command
> {code:java}
> ./gradlew test --tests TestKnnVectorQuery.testRandomWithFilter -Dtests.seed=1DA39B92702DAC45 -Dtests.multiplier=3
> {code}
> {code:java}
> org.apache.lucene.search.TestKnnVectorQuery > testRandomWithFilter FAILED
>     java.lang.UnsupportedOperationException: exact search is not supported
>         at __randomizedtesting.SeedInfo.seed([1DA39B92702DAC45:6BEAC2197AD96AE0]:0)
>         at org.apache.lucene.search.TestKnnVectorQuery$ThrowingKnnVectorQuery.exactSearch(TestKnnVectorQuery.java:715)
>         at org.apache.lucene.search.KnnVectorQuery.searchLeaf(KnnVectorQuery.java:151)
>         at org.apache.lucene.search.KnnVectorQuery.rewrite(KnnVectorQuery.java:108)
>         at org.apache.lucene.search.ConstantScoreQuery.rewrite(ConstantScoreQuery.java:44)
>         at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:789)
>         at org.apache.lucene.tests.search.AssertingIndexSearcher.rewrite(AssertingIndexSearcher.java:69)
>         at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:803)
>         at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:685)
>         at org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:667)
>         at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:584)
>         at org.apache.lucene.search.TestKnnVectorQuery.testRandomWithFilter(TestKnnVectorQuery.java:556)
> {code}
> In some edge cases (depending on the random seed), [KnnVectorQuery.java#147|https://github.com/apache/lucene/blob/fe9d26178d033f585c08a5e86708063ac0ec0c9e/lucene/core/src/java/org/apache/lucene/search/KnnVectorQuery.java#L147] becomes false, and then `exactSearch()` is called.
> The upper bound of [the test range query (filter)|https://github.com/apache/lucene/blob/fe9d26178d033f585c08a5e86708063ac0ec0c9e/lucene/core/src/test/org/apache/lucene/search/TestKnnVectorQuery.java#L554] could be 200 (the max value of "tag" field + 1) instead of lower + 150 to make it "unrestrictive"?



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

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