You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by sh...@apache.org on 2009/02/12 15:10:33 UTC

svn commit: r743757 - in /lucene/solr/trunk: CHANGES.txt src/java/org/apache/solr/handler/ReplicationHandler.java src/java/org/apache/solr/handler/SnapPuller.java

Author: shalin
Date: Thu Feb 12 14:10:32 2009
New Revision: 743757

URL: http://svn.apache.org/viewvc?rev=743757&view=rev
Log:
SOLR-1018 -- Slave is unable to replicate when server acts as repeater (as both master and slave)

Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
    lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=743757&r1=743756&r2=743757&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Thu Feb 12 14:10:32 2009
@@ -261,6 +261,9 @@
 31. SOLR-1015: Incomplete information in replication admin page and http command response when server
     is both master and slave i.e. when server is a repeater (Akshay Ukey via shalin)
 
+32. SOLR-1018: Slave is unable to replicate when server acts as repeater (as both master and slave)
+    (Akshay Ukey, Noble Paul via shalin)
+
 
 Other Changes
 ----------------------

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java?rev=743757&r1=743756&r2=743757&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/ReplicationHandler.java Thu Feb 12 14:10:32 2009
@@ -83,7 +83,7 @@
   private boolean replicateOnCommit = false;
 
   private boolean replicateOnStart = false;
-  
+
   private int numTimesReplicated = 0;
 
   private final Map<String, FileInfo> confFileInfoCache = new HashMap<String, FileInfo>();
@@ -520,7 +520,7 @@
       master.add("replicatableIndexVersion", commit.getVersion());
       master.add("replicatableGeneration", commit.getGeneration());
     }
-    
+
     SnapPuller snapPuller = tempSnapPuller;
     if (snapPuller != null) {
       try {
@@ -670,6 +670,16 @@
     return details;
   }
 
+  void refreshCommitpoint(){
+    IndexCommit commitPoint = core.getDeletionPolicy().getLatestCommit();
+    if(replicateOnCommit && !commitPoint.isOptimized()){
+      indexCommitPoint = commitPoint;
+    }
+    if(replicateOnOptimize && commitPoint.isOptimized()){
+      indexCommitPoint = commitPoint;
+    }
+  }
+
   @SuppressWarnings("unchecked")
   public void inform(SolrCore core) {
     this.core = core;
@@ -717,7 +727,9 @@
             LOG.warn("The update handler being used is not an instance or sub-class of DirectUpdateHandler2. " +
                     "Replicate on Startup cannot work.");
           }
-          indexCommitPoint = s.get().getReader().getIndexCommit();
+          if(s.get().getReader().getIndexCommit() != null)
+            if(s.get().getReader().getIndexCommit().getGeneration() != 1L)
+              indexCommitPoint = s.get().getReader().getIndexCommit();
         } catch (IOException e) {
           LOG.warn("Unable to get IndexCommit on startup", e);
         } finally {

Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java?rev=743757&r1=743756&r2=743757&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/SnapPuller.java Thu Feb 12 14:10:32 2009
@@ -354,6 +354,7 @@
       LOG.info("Force open index writer to make sure older index files get deleted");
       DirectUpdateHandler2 handler = (DirectUpdateHandler2) solrCore.getUpdateHandler();
       handler.forceOpenWriter();
+      replicationHandler.refreshCommitpoint();
     } else  {
       LOG.warn("The update handler is not an instance or sub-class of DirectUpdateHandler2. " +
               "ReplicationHandler may not be able to cleanup un-used index files.");