Michael McCandless created LUCENE-9405:
------------------------------------------

             Summary: IndexWriter incorrectly calls closeMergeReaders twice 
when the merged segment is 100% deleted
                 Key: LUCENE-9405
                 URL: https://issues.apache.org/jira/browse/LUCENE-9405
             Project: Lucene - Core
          Issue Type: Bug
          Components: core/index
            Reporter: Michael McCandless


This is the first spinoff from a [controversial PR to add a new index-time 
feature to Lucene to merge small segments during 
commit|https://github.com/apache/lucene-solr/pull/1552].  This can 
substantially reduce the number of small index segments to search.

See specifically [this discussion 
there|https://github.com/apache/lucene-solr/pull/1552#discussion_r440298695].

{{IndexWriter}} seems to be missing a {{success = true}} inside {{mergeMiddle}} 
in the case where all segments being merged have 100% deletions and the 
segments will simply be dropped.

In this case, in master today, I think we are incorrectly calling 
{{closeMergedReaders}} twice, first with {{suppressExceptions = false}} and 
second time with {{true}}.

There is a [dedicated test case here showing the 
issue|https://github.com/apache/lucene-solr/commit/cab5ef5e6f2bdcda59fd669a298ec1377777af9d],
 but that test case relies on changes in the controversial feature (added 
{{MergePolicy.findFullFlushMerges}}). I think it should be possible to make 
another test case show the bug without that controversial feature, and I am 
unsure why our existing randomized tests have not uncovered this yet ...



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to