You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2019/05/23 16:04:28 UTC

[lucene-solr] branch branch_8_1 updated: Revert "LUCENE-8809: Ensure release segment states"

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

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


The following commit(s) were added to refs/heads/branch_8_1 by this push:
     new af3be2b  Revert "LUCENE-8809: Ensure release segment states"
af3be2b is described below

commit af3be2b855c5bd7b3b5413ae4bf0ef89f9f7ef47
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Thu May 23 18:04:07 2019 +0200

    Revert "LUCENE-8809: Ensure release segment states"
    
    This reverts commit 2e16009197ac10149a53eb97e875f89bd3a75472.
---
 .../apache/lucene/index/FrozenBufferedUpdates.java | 25 ++++++-----
 .../org/apache/lucene/index/TestIndexWriter.java   | 49 ----------------------
 2 files changed, 12 insertions(+), 62 deletions(-)

diff --git a/lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java b/lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java
index 14156a7..3159341 100644
--- a/lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java
+++ b/lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java
@@ -19,6 +19,7 @@ package org.apache.lucene.index;
 import java.io.Closeable;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -345,23 +346,21 @@ final class FrozenBufferedUpdates {
   public static BufferedUpdatesStream.ApplyDeletesResult closeSegmentStates(IndexWriter writer, BufferedUpdatesStream.SegmentState[] segStates, boolean success) throws IOException {
     List<SegmentCommitInfo> allDeleted = null;
     long totDelCount = 0;
-    try {
-      for (BufferedUpdatesStream.SegmentState segState : segStates) {
-        if (success) {
-          totDelCount += segState.rld.getDelCount() - segState.startDelCount;
-          int fullDelCount = segState.rld.getDelCount();
-          assert fullDelCount <= segState.rld.info.info.maxDoc() : fullDelCount + " > " + segState.rld.info.info.maxDoc();
-          if (segState.rld.isFullyDeleted() && writer.getConfig().getMergePolicy().keepFullyDeletedSegment(() -> segState.reader) == false) {
-            if (allDeleted == null) {
-              allDeleted = new ArrayList<>();
-            }
-            allDeleted.add(segState.reader.getOriginalSegmentInfo());
+    final List<BufferedUpdatesStream.SegmentState> segmentStates = Arrays.asList(segStates);
+    for (BufferedUpdatesStream.SegmentState segState : segmentStates) {
+      if (success) {
+        totDelCount += segState.rld.getDelCount() - segState.startDelCount;
+        int fullDelCount = segState.rld.getDelCount();
+        assert fullDelCount <= segState.rld.info.info.maxDoc() : fullDelCount + " > " + segState.rld.info.info.maxDoc();
+        if (segState.rld.isFullyDeleted() && writer.getConfig().getMergePolicy().keepFullyDeletedSegment(() -> segState.reader) == false) {
+          if (allDeleted == null) {
+            allDeleted = new ArrayList<>();
           }
+          allDeleted.add(segState.reader.getOriginalSegmentInfo());
         }
       }
-    } finally {
-      IOUtils.close(segStates);
     }
+    IOUtils.close(segmentStates);
     if (writer.infoStream.isEnabled("BD")) {
       writer.infoStream.message("BD", "closeSegmentStates: " + totDelCount + " new deleted documents; pool " + writer.getPendingUpdatesCount()+ " packets; bytesUsed=" + writer.getReaderPoolRamBytesUsed());
     }
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
index 52bfd2e..8341abe 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
@@ -39,7 +39,6 @@ import java.util.Map;
 import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.Semaphore;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
@@ -77,8 +76,6 @@ import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.ScoreDoc;
-import org.apache.lucene.search.SearcherFactory;
-import org.apache.lucene.search.SearcherManager;
 import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.store.AlreadyClosedException;
@@ -3733,50 +3730,4 @@ public class TestIndexWriter extends LuceneTestCase {
     dir.close();
   }
 
-  public void testRefreshAndRollbackConcurrently() throws Exception {
-    Directory dir = newDirectory();
-    IndexWriter w = new IndexWriter(dir, newIndexWriterConfig());
-    AtomicBoolean stopped = new AtomicBoolean();
-    Semaphore indexedDocs = new Semaphore(0);
-    Thread indexer = new Thread(() -> {
-      while (stopped.get() == false) {
-        try {
-          String id = Integer.toString(random().nextInt(100));
-          Document doc = new Document();
-          doc.add(new StringField("id", id, Field.Store.YES));
-          w.updateDocument(new Term("id", id), doc);
-          indexedDocs.release(1);
-        } catch (IOException e) {
-          throw new AssertionError(e);
-        } catch (AlreadyClosedException ignored) {
-          return;
-        }
-      }
-    });
-
-    SearcherManager sm = new SearcherManager(w, new SearcherFactory());
-    Thread refresher = new Thread(() -> {
-      while (stopped.get() == false) {
-        try {
-          sm.maybeRefreshBlocking();
-        } catch (IOException e) {
-          throw new AssertionError(e);
-        } catch (AlreadyClosedException ignored) {
-          return;
-        }
-      }
-    });
-
-    try {
-      indexer.start();
-      refresher.start();
-      indexedDocs.acquire(1 + random().nextInt(100));
-      w.rollback();
-    } finally {
-      stopped.set(true);
-      indexer.join();
-      refresher.join();
-      IOUtils.close(sm, dir);
-    }
-  }
 }