You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2016/02/25 02:58:02 UTC

[42/50] [abbrv] lucene-solr git commit: SOLR-8720: ZkController#publishAndWaitForDownStates should use #publishNodeAsDown.

SOLR-8720: ZkController#publishAndWaitForDownStates should use #publishNodeAsDown.


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

Branch: refs/heads/jira/SOLR-445
Commit: 18bb8caedecb5c7d1a7c93006b2d919218ef6386
Parents: 8ac4fdd
Author: markrmiller <ma...@apache.org>
Authored: Tue Feb 23 14:51:01 2016 -0500
Committer: markrmiller <ma...@apache.org>
Committed: Tue Feb 23 14:51:01 2016 -0500

----------------------------------------------------------------------
 solr/CHANGES.txt                                |  2 +
 .../org/apache/solr/cloud/ZkController.java     | 44 ++++----------------
 2 files changed, 11 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/18bb8cae/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index bf548ae..87300bc 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -240,6 +240,8 @@ Optimizations
 * SOLR-8669: Non binary responses use chunked encoding because we flush the outputstream early.
   (Mark Miller)
 
+* SOLR-8720: ZkController#publishAndWaitForDownStates should use #publishNodeAsDown. (Mark Miller)
+
 Other Changes
 ----------------------
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/18bb8cae/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 391f69a..4c826a7 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -664,40 +664,16 @@ public final class ZkController {
   public void publishAndWaitForDownStates() throws KeeperException,
       InterruptedException {
 
-    ClusterState clusterState = zkStateReader.getClusterState();
-    Set<String> collections = clusterState.getCollections();
-    Set<String> updatedCoreNodeNames = new HashSet<>();
-    for (String collectionName : collections) {
-      DocCollection collection = clusterState.getCollection(collectionName);
-      Collection<Slice> slices = collection.getSlices();
-      for (Slice slice : slices) {
-        Collection<Replica> replicas = slice.getReplicas();
-        for (Replica replica : replicas) {
-          if (getNodeName().equals(replica.getNodeName())
-              && replica.getState() != Replica.State.DOWN) {
-            ZkNodeProps m = new ZkNodeProps(Overseer.QUEUE_OPERATION, "state",
-                ZkStateReader.STATE_PROP, Replica.State.DOWN.toString(),
-                ZkStateReader.BASE_URL_PROP, getBaseUrl(),
-                ZkStateReader.CORE_NAME_PROP,
-                replica.getStr(ZkStateReader.CORE_NAME_PROP),
-                ZkStateReader.ROLES_PROP,
-                replica.getStr(ZkStateReader.ROLES_PROP),
-                ZkStateReader.NODE_NAME_PROP, getNodeName(),
-                ZkStateReader.SHARD_ID_PROP,
-                replica.getStr(ZkStateReader.SHARD_ID_PROP),
-                ZkStateReader.COLLECTION_PROP, collectionName,
-                ZkStateReader.CORE_NODE_NAME_PROP, replica.getName());
-            updatedCoreNodeNames.add(replica.getName());
-            overseerJobQueue.offer(Utils.toJSON(m));
-          }
-        }
-      }
-    }
+    publishNodeAsDown(getNodeName());
 
+    
     // now wait till the updates are in our state
     long now = System.nanoTime();
     long timeout = now + TimeUnit.NANOSECONDS.convert(WAIT_DOWN_STATES_TIMEOUT_SECONDS, TimeUnit.SECONDS);
-    boolean foundStates = false;
+    boolean foundStates = true;
+    ClusterState clusterState = zkStateReader.getClusterState();
+    Set<String> collections = clusterState.getCollections();
+    
     while (System.nanoTime() < timeout) {
       clusterState = zkStateReader.getClusterState();
       collections = clusterState.getCollections();
@@ -707,16 +683,14 @@ public final class ZkController {
         for (Slice slice : slices) {
           Collection<Replica> replicas = slice.getReplicas();
           for (Replica replica : replicas) {
-            if (replica.getState() == Replica.State.DOWN) {
-              updatedCoreNodeNames.remove(replica.getName());
-
+            if (getNodeName().equals(replica.getNodeName()) && replica.getState() != Replica.State.DOWN) {
+              foundStates = false;
             }
           }
         }
       }
 
-      if (updatedCoreNodeNames.size() == 0) {
-        foundStates = true;
+      if (foundStates) {
         Thread.sleep(1000);
         break;
       }