You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2015/05/26 22:15:23 UTC

svn commit: r1681839 - in /lucene/dev/trunk/solr/core/src: java/org/apache/solr/handler/ java/org/apache/solr/update/ test/org/apache/solr/cloud/

Author: erick
Date: Tue May 26 20:15:23 2015
New Revision: 1681839

URL: http://svn.apache.org/r1681839
Log:
SOLR-6273: Cross Data Center Replication: Fix at least one test, un-Ignore tests

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/CdcrUpdateLog.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationDistributedZkTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationHandlerTest.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrRequestHandlerTest.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java?rev=1681839&r1=1681838&r2=1681839&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java Tue May 26 20:15:23 2015
@@ -80,6 +80,7 @@ import org.apache.solr.handler.Replicati
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.update.CdcrUpdateLog;
 import org.apache.solr.update.CommitUpdateCommand;
 import org.apache.solr.update.UpdateLog;
 import org.apache.solr.util.DefaultSolrThreadFactory;
@@ -808,7 +809,9 @@ public class IndexFetcher {
       // this is called before copying the files to the original conf dir
       // so that if there is an exception avoid corrupting the original files.
       terminateAndWaitFsyncService();
+      ((CdcrUpdateLog) ulog).reset(); // reset the update log before copying the new tlog directory
       copyTmpTlogFiles2Tlog(tmpTlogDir, timestamp);
+      ulog.init(solrCore.getUpdateHandler(), solrCore); // re-initialise the update log with the new directory
     } finally {
       delTree(tmpTlogDir);
     }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/CdcrUpdateLog.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/CdcrUpdateLog.java?rev=1681839&r1=1681838&r2=1681839&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/CdcrUpdateLog.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/CdcrUpdateLog.java Tue May 26 20:15:23 2015
@@ -238,6 +238,30 @@ public class CdcrUpdateLog extends Updat
     }
   }
 
+  /**
+   * expert: Reset the update log before initialisation. This is needed by the IndexFetcher during a
+   * a Recovery operation in order to re-initialise the UpdateLog with a new set of tlog files.
+   */
+  public void reset() {
+    synchronized (this) {
+      // Close readers
+      for (CdcrLogReader reader : new ArrayList<>(logPointers.keySet())) {
+        reader.close();
+      }
+
+      // Close and clear logs
+      for (TransactionLog log : logs) {
+        log.deleteOnClose = false;
+        log.decref();
+        log.forceClose();
+      }
+      logs.clear();
+
+      // reset lastDataDir for #init()
+      lastDataDir = null;
+    }
+  }
+
   @Override
   public void close(boolean committed, boolean deleteOnClose) {
     for (CdcrLogReader reader : new ArrayList<>(logPointers.keySet())) {

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationDistributedZkTest.java?rev=1681839&r1=1681838&r2=1681839&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationDistributedZkTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationDistributedZkTest.java Tue May 26 20:15:23 2015
@@ -27,7 +27,6 @@ import org.junit.Test;
 import java.util.ArrayList;
 import java.util.List;
 
-@Ignore
 @Slow
 public class CdcrReplicationDistributedZkTest extends BaseCdcrDistributedZkTest {
 

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationHandlerTest.java?rev=1681839&r1=1681838&r2=1681839&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrReplicationHandlerTest.java Tue May 26 20:15:23 2015
@@ -32,7 +32,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-@Ignore
 @Slow
 public class CdcrReplicationHandlerTest extends BaseCdcrDistributedZkTest {
 

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrRequestHandlerTest.java?rev=1681839&r1=1681838&r2=1681839&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrRequestHandlerTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/CdcrRequestHandlerTest.java Tue May 26 20:15:23 2015
@@ -23,7 +23,6 @@ import org.apache.solr.handler.CdcrParam
 import org.junit.Ignore;
 import org.junit.Test;
 
-@Ignore
 @Slow
 public class CdcrRequestHandlerTest extends BaseCdcrDistributedZkTest {