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 2013/10/12 22:36:43 UTC
svn commit: r1531590 - in /lucene/dev/trunk/lucene/core/src:
java/org/apache/lucene/index/IndexWriter.java
test/org/apache/lucene/index/TestIndexWriterDelete.java
test/org/apache/lucene/index/TestIndexWriterWithThreads.java
Author: mikemccand
Date: Sat Oct 12 20:36:42 2013
New Revision: 1531590
URL: http://svn.apache.org/r1531590
Log:
fix test failure; add fangs to testcase
Modified:
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1531590&r1=1531589&r2=1531590&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Sat Oct 12 20:36:42 2013
@@ -1027,18 +1027,15 @@ public class IndexWriter implements Clos
infoStream.message("IW", "now call final commit()");
}
- // Must do this before commitInternal, in case any of
- // the dropped readers in the pool wrote a new live
- // docs:
- synchronized(this) {
- readerPool.dropAll(true);
- }
-
if (doFlush) {
commitInternal();
}
synchronized(this) {
+ // commitInternal calls ReaderPool.commit, which
+ // writes any pending liveDocs from ReaderPool, so
+ // it's safe to drop all readers now:
+ readerPool.dropAll(true);
deleter.close();
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1531590&r1=1531589&r2=1531590&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Sat Oct 12 20:36:42 2013
@@ -1313,6 +1313,7 @@ public class TestIndexWriterDelete exten
// to fail in "more evil" places inside BDS
shouldFail.set(true);
+ boolean doClose = false;
try {
@@ -1333,9 +1334,16 @@ public class TestIndexWriterDelete exten
// throw the exc):
assertEquals(docCount-deleteCount, r.numDocs());
r.close();
-
- // TODO: also call w.close() in here, sometimes,
- // so we sometimes get a fail via dropAll
+
+ // Sometimes close, so the disk full happens on close:
+ if (random().nextBoolean()) {
+ if (VERBOSE) {
+ System.out.println(" now close writer");
+ }
+ doClose = true;
+ w.close();
+ w = null;
+ }
} catch (FakeIOException ioe) {
// expected
@@ -1348,13 +1356,23 @@ public class TestIndexWriterDelete exten
IndexReader r;
- if (random().nextBoolean()) {
+ if (doClose && w != null) {
+ if (VERBOSE) {
+ System.out.println(" now 2nd close writer");
+ }
+ w.close();
+ w = null;
+ }
+
+ if (w == null || random().nextBoolean()) {
// Open non-NRT reader, to make sure the "on
// disk" bits are good:
if (VERBOSE) {
System.out.println("TEST: verify against non-NRT reader");
}
- w.commit();
+ if (w != null) {
+ w.commit();
+ }
r = DirectoryReader.open(dir);
} else {
if (VERBOSE) {
@@ -1366,7 +1384,7 @@ public class TestIndexWriterDelete exten
r.close();
// Sometimes re-use RIW, other times open new one:
- if (random().nextBoolean()) {
+ if (w != null && random().nextBoolean()) {
if (VERBOSE) {
System.out.println("TEST: close writer");
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java?rev=1531590&r1=1531589&r2=1531590&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java Sat Oct 12 20:36:42 2013
@@ -177,6 +177,9 @@ public class TestIndexWriterWithThreads
int NUM_THREADS = 3;
int numIterations = TEST_NIGHTLY ? 7 : 3;
for(int iter=0;iter<numIterations;iter++) {
+ if (VERBOSE) {
+ System.out.println("\nTEST: iter=" + iter);
+ }
Directory dir = newDirectory();
IndexWriter writer = new IndexWriter(
@@ -209,6 +212,9 @@ public class TestIndexWriterWithThreads
}
}
+ if (VERBOSE) {
+ System.out.println("\nTEST: now close");
+ }
writer.close(false);
// Make sure threads that are adding docs are not hung: