You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2020/06/26 13:16:12 UTC

[lucene-solr] branch jira/lucene-8962 updated: cleanup after broken merge

This is an automated email from the ASF dual-hosted git repository.

simonw pushed a commit to branch jira/lucene-8962
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/jira/lucene-8962 by this push:
     new 2a9580b  cleanup after broken merge
2a9580b is described below

commit 2a9580b8e3016294232e4eda0824748169a292bb
Author: Simon Willnauer <si...@apache.org>
AuthorDate: Fri Jun 26 15:15:48 2020 +0200

    cleanup after broken merge
---
 lucene/core/src/java/org/apache/lucene/index/IndexWriter.java | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
index 587216f..c7e9f90 100644
--- a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
@@ -3385,7 +3385,12 @@ public class IndexWriter implements Closeable, TwoPhaseCommit, Accountable,
         closeReaders = false;
       } finally {
         if (closeReaders) {
-          IOUtils.applyToAll(onCommitMerges.merges, merge -> closeMergeReaders(merge, true, false));
+          IOUtils.applyToAll(onCommitMerges.merges, merge -> {
+            // that merge is broken we need to clean up after it - it's fine we still have the IW lock to do this
+            assert pendingMerges.contains(merge) : "merge should be pending but isn't: " + merge.segString();
+            abortOneMerge(merge);
+            mergeFinish(merge);
+          });
         }
       }
     }
@@ -4425,7 +4430,6 @@ public class IndexWriter implements Closeable, TwoPhaseCommit, Accountable,
       assert merge.getMergeReader().isEmpty() : "we are done but still have readers: " + merge.getMergeReader();
       assert suppressExceptions : "can't be done and not suppressing exceptions";
     }
-
   }
 
   private void countSoftDeletes(CodecReader reader, Bits wrappedLiveDocs, Bits hardLiveDocs, Counter softDeleteCounter,