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;
}