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 2017/02/12 19:59:09 UTC

lucene-solr:branch_6x: SOLR-9846: Try and make sure Overseer is always closed in tests and it's threads are done when it exists close.

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x 5c9dace3c -> 7da344011


SOLR-9846: Try and make sure Overseer is always closed in tests and it's threads are done when it exists close.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/7da34401
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/7da34401
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/7da34401

Branch: refs/heads/branch_6x
Commit: 7da344011441824dd89a18d968661081f84f742c
Parents: 5c9dace
Author: markrmiller <ma...@apache.org>
Authored: Sun Feb 12 14:58:06 2017 -0500
Committer: markrmiller <ma...@apache.org>
Committed: Sun Feb 12 14:59:01 2017 -0500

----------------------------------------------------------------------
 .../java/org/apache/solr/cloud/Overseer.java    | 21 +++++++++++++++++++-
 .../org/apache/solr/cloud/ZkController.java     |  5 ++++-
 2 files changed, 24 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7da34401/solr/core/src/java/org/apache/solr/cloud/Overseer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/Overseer.java b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
index a618874..0b74ccb 100644
--- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java
+++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
@@ -44,6 +44,7 @@ import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.common.params.CollectionParams;
 import org.apache.solr.common.util.IOUtils;
+import org.apache.solr.common.util.ObjectReleaseTracker;
 import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.CloudConfig;
 import org.apache.solr.handler.admin.CollectionsHandler;
@@ -489,6 +490,7 @@ public class Overseer implements Closeable {
     this.zkController = zkController;
     this.stats = new Stats();
     this.config = config;
+    assert ObjectReleaseTracker.track(this);
   }
   
   public synchronized void start(String id) {
@@ -540,11 +542,12 @@ public class Overseer implements Closeable {
   }
   
   public synchronized void close() {
-    if (closed || id == null) return;
+    if (closed) return;
     log.info("Overseer (id=" + id + ") closing");
     
     doClose();
     this.closed = true;
+    assert ObjectReleaseTracker.release(this);
   }
 
   private void doClose() {
@@ -562,6 +565,22 @@ public class Overseer implements Closeable {
       arfoThread.interrupt();
     }
     
+    if (updaterThread != null) {
+      try {
+        updaterThread.join();
+      } catch (InterruptedException e) {}
+    }
+    if (ccThread != null) {
+      try {
+        ccThread.join();
+      } catch (InterruptedException e) {}
+    }
+    if (arfoThread != null) {
+      try {
+        arfoThread.join();
+      } catch (InterruptedException e) {}
+    }
+    
     updaterThread = null;
     ccThread = null;
     arfoThread = null;

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7da34401/solr/core/src/java/org/apache/solr/cloud/ZkController.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index eba7067..89a88e3 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -75,6 +75,7 @@ import org.apache.solr.common.cloud.ZooKeeperException;
 import org.apache.solr.common.params.CollectionParams;
 import org.apache.solr.common.params.CommonParams;
 import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.util.ObjectReleaseTracker;
 import org.apache.solr.common.util.StrUtils;
 import org.apache.solr.common.util.URLUtil;
 import org.apache.solr.common.util.Utils;
@@ -417,6 +418,8 @@ public class ZkController {
     });
 
     init(registerOnReconnect);
+    
+    assert ObjectReleaseTracker.track(this);
   }
 
   public int getLeaderVoteWait() {
@@ -552,7 +555,7 @@ public class ZkController {
         }
       }
     }
-
+    assert ObjectReleaseTracker.release(this);
   }
 
   /**