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:39:37 UTC

svn commit: r1531591 - in /lucene/dev/branches/branch_4x: ./ lucene/ lucene/core/ lucene/core/src/java/org/apache/lucene/index/ lucene/core/src/test/org/apache/lucene/index/

Author: mikemccand
Date: Sat Oct 12 20:39:36 2013
New Revision: 1531591

URL: http://svn.apache.org/r1531591
Log:
fix test failure; add fangs to testcase

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/lucene/   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/   (props changed)
    lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
    lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java

Modified: lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1531591&r1=1531590&r2=1531591&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Sat Oct 12 20:39:36 2013
@@ -1039,18 +1039,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/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java?rev=1531591&r1=1531590&r2=1531591&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterDelete.java Sat Oct 12 20:39:36 2013
@@ -1323,6 +1323,7 @@ public class TestIndexWriterDelete exten
       // to fail in "more evil" places inside BDS
 
       shouldFail.set(true);
+      boolean doClose = false;
 
       try {
 
@@ -1343,9 +1344,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
@@ -1358,13 +1366,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) {
@@ -1376,7 +1394,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/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java?rev=1531591&r1=1531590&r2=1531591&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java (original)
+++ lucene/dev/branches/branch_4x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterWithThreads.java Sat Oct 12 20:39:36 2013
@@ -179,6 +179,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(
@@ -211,6 +214,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: