Luca Cavanna created LUCENE-10507:
-------------------------------------

             Summary: Should it be more likely to search concurrently in tests?
                 Key: LUCENE-10507
                 URL: https://issues.apache.org/jira/browse/LUCENE-10507
             Project: Lucene - Core
          Issue Type: Improvement
            Reporter: Luca Cavanna


As part of LUCENE-10002 we are migrating test usages of 
IndexSearcher#search(Query, Collector) to use the corresponding search method 
that takes a CollectorManager in place of a Collector. As part of such changes, 
I've been paying attention to whether searchers are created through 
LuceneTestCase#newSearcher and migrating to it when possible.

This caused some recent test failures following test changes, which were in 
most cases test issues, although they were quite rare due to the fact that we 
only rarely exercise the concurrent code-path in tests.

One recent failure uncovered LUCENE-10500, which was an actual bug that 
affected concurrent searches only, and was uncovered by a test run that indexed 
a considerable amount of docs and was lucky enough to get an executor set to 
its index searcher as well as get multiple slices.

LuceneTestCase#newIndexSearcher(IndexReader) uses threads only rarely, and even 
when useThreads is true, the searcher may not get an executor set. Also, it can 
often happen that despite an executor is set, the searcher will hold only one 
slice, as not enough documents are indexed. Some nightly tests index enough 
documents, and LuceneTestCase also lowers the slice limits but only 50% of the 
times and only when wrapWithAssertions is false. Also I wonder if the lower 
limits are low enough:


{code:java}
        int maxDocPerSlice = 1 + random.nextInt(100000);
        int maxSegmentsPerSlice = 1 + random.nextInt(20);
{code}


All in all, I wonder if we should make it more likely for real concurrent 
searches to happen while testing across multiple slices. It seems like it could 
be useful especially as we'd like users to use collector managers instead of 
collectors (although that does not necessarily translate to concurrent search).




--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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

Reply via email to