You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2017/06/29 09:53:25 UTC
lucene-solr:master: LUCENE-7887: don't clear BufferedUpdatesStream on
abort
Repository: lucene-solr
Updated Branches:
refs/heads/master cabb1fa36 -> c9c0121d9
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/master
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) {