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 2017/07/03 11:58:19 UTC

[39/58] [abbrv] lucene-solr:jira/solr-10879: LUCENE-7887: don't clear BufferedUpdatesStream on abort

LUCENE-7887: don't clear BufferedUpdatesStream on abort


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c9c0121d
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c9c0121d
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c9c0121d

Branch: refs/heads/jira/solr-10879
Commit: c9c0121d9399ff0009c51d6a32632dd0962e8c8f
Parents: cabb1fa
Author: Mike McCandless <mi...@apache.org>
Authored: Thu Jun 29 05:52:19 2017 -0400
Committer: Mike McCandless <mi...@apache.org>
Committed: Thu Jun 29 05:53:10 2017 -0400

----------------------------------------------------------------------
 .../java/org/apache/lucene/index/BufferedUpdatesStream.java    | 3 +++
 .../java/org/apache/lucene/index/FrozenBufferedUpdates.java    | 6 +-----
 lucene/core/src/java/org/apache/lucene/index/IndexWriter.java  | 2 --
 3 files changed, 4 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c9c0121d/lucene/core/src/java/org/apache/lucene/index/BufferedUpdatesStream.java
----------------------------------------------------------------------
diff --git a/lucene/core/src/java/org/apache/lucene/index/BufferedUpdatesStream.java b/lucene/core/src/java/org/apache/lucene/index/BufferedUpdatesStream.java
index 8c0a2be..07d2b66 100644
--- a/lucene/core/src/java/org/apache/lucene/index/BufferedUpdatesStream.java
+++ b/lucene/core/src/java/org/apache/lucene/index/BufferedUpdatesStream.java
@@ -175,11 +175,14 @@ class BufferedUpdatesStream implements Accountable {
     // TODO: would be a bit more memory efficient to track this per-segment, so when each segment writes it writes all packets finished for
     // it, rather than only recording here, across all segments.  But, more complex code, and more CPU, and maybe not so much impact in
     // practice?
+    assert packet.applied.getCount() == 1: "packet=" + packet;
 
     packet.applied.countDown();
 
     updates.remove(packet);
     numTerms.addAndGet(-packet.numTermDeletes);
+    assert numTerms.get() >= 0: "numTerms=" + numTerms + " packet=" + packet;
+    
     bytesUsed.addAndGet(-packet.bytesUsed);
 
     finishedSegment(packet.delGen());

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c9c0121d/lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java
----------------------------------------------------------------------
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 d5d1de0..8248841 100644
--- a/lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java
+++ b/lucene/core/src/java/org/apache/lucene/index/FrozenBufferedUpdates.java
@@ -299,7 +299,6 @@ class FrozenBufferedUpdates {
           if (infoStream.isEnabled("BD")) {
             infoStream.message("BD", "packet matches no segments");
           }
-          
           break;
         }
 
@@ -422,10 +421,7 @@ class FrozenBufferedUpdates {
       throw new IllegalArgumentException("gen is not yet set; call BufferedUpdatesStream.push first");
     }
 
-    if (applied.getCount() == 0) {
-      // already done
-      return totalDelCount;
-    }
+    assert applied.getCount() != 0;
 
     if (privateSegment != null) {
       assert segStates.length == 1;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c9c0121d/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
----------------------------------------------------------------------
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 4870282..2ef928b 100644
--- a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
@@ -2364,8 +2364,6 @@ public class IndexWriter implements Closeable, TwoPhaseCommit, Accountable {
       // set it to false before calling rollbackInternal
       mergeScheduler.close();
 
-      bufferedUpdatesStream.clear();
-
       docWriter.close(); // mark it as closed first to prevent subsequent indexing actions/flushes 
       docWriter.abort(this); // don't sync on IW here
       synchronized(this) {