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);
- }
- }
}