You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2015/01/10 17:12:39 UTC

svn commit: r1650764 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/handler/ReplicationHandler.java

Author: markrmiller
Date: Sat Jan 10 16:12:39 2015
New Revision: 1650764

URL: http://svn.apache.org/r1650764
Log:
SOLR-6793: ReplicationHandler does not destroy all of it's created SnapPullers.

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

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1650764&r1=1650763&r2=1650764&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Sat Jan 10 16:12:39 2015
@@ -415,6 +415,9 @@ Bug Fixes
 * SOLR-6839: Direct routing with CloudSolrServer will ignore the Overwrite document option.
   (Mark Miller)
 
+* SOLR-6793: ReplicationHandler does not destroy all of it's created SnapPullers.
+  (Mark Miller)
+
 Optimizations
 ----------------------
 

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java?rev=1650764&r1=1650763&r2=1650764&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java Sat Jan 10 16:12:39 2015
@@ -329,11 +329,16 @@ public class ReplicationHandler extends
     if (!snapPullLock.tryLock())
       return false;
     try {
-      tempSnapPuller = snapPuller;
       if (masterUrl != null) {
+        if (tempSnapPuller != null && tempSnapPuller != snapPuller) {
+          tempSnapPuller.destroy();
+        }
+        
         NamedList<Object> nl = solrParams.toNamedList();
         nl.remove(SnapPuller.POLL_INTERVAL);
         tempSnapPuller = new SnapPuller(nl, this, core);
+      } else {
+        tempSnapPuller = snapPuller;
       }
       return tempSnapPuller.fetchLatestIndex(core, forceReplication);
     } catch (Exception e) {
@@ -1001,6 +1006,9 @@ public class ReplicationHandler extends
         if (snapPuller != null) {
           snapPuller.destroy();
         }
+        if (tempSnapPuller != null && tempSnapPuller != snapPuller) {
+          tempSnapPuller.destroy();
+        }
       }
 
       @Override