You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2017/10/17 10:35:10 UTC
lucene-solr:master: SOLR-11478: Solr should remove itself from
live_nodes in zk immediately on shutdown
Repository: lucene-solr
Updated Branches:
refs/heads/master 283ffef9e -> 57e976341
SOLR-11478: Solr should remove itself from live_nodes in zk immediately on shutdown
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/57e97634
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/57e97634
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/57e97634
Branch: refs/heads/master
Commit: 57e976341b24c5f86f090c52f41ce6940f9cd6a5
Parents: 283ffef
Author: Cao Manh Dat <da...@apache.org>
Authored: Tue Oct 17 17:35:00 2017 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Tue Oct 17 17:35:00 2017 +0700
----------------------------------------------------------------------
solr/CHANGES.txt | 4 ++++
.../src/java/org/apache/solr/cloud/ZkController.java | 14 ++++++++++++++
.../src/java/org/apache/solr/core/CoreContainer.java | 5 +++++
3 files changed, 23 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/57e97634/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index d7dddf4..645664c 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -61,6 +61,10 @@ Optimizations
* SOLR-11443: Remove the usage of workqueue for Overseer. (Cao Manh Dat, Scott Blum)
+Other Changes
+----------------------
+* SOLR-11478: Solr should remove itself from live_nodes in zk immediately on shutdown. (Cao Manh Dat)
+
================== 7.1.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/57e97634/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 35171da..b6a88ea 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -976,6 +976,20 @@ public class ZkController {
zkClient.multi(ops, true);
}
+ public void removeEphemeralLiveNode() throws KeeperException, InterruptedException {
+ if (zkRunOnly) {
+ return;
+ }
+ String nodeName = getNodeName();
+ String nodePath = ZkStateReader.LIVE_NODES_ZKNODE + "/" + nodeName;
+ String nodeAddedPath = ZkStateReader.SOLR_AUTOSCALING_NODE_ADDED_PATH + "/" + nodeName;
+ log.info("Remove node as live in ZooKeeper:" + nodePath);
+ List<Op> ops = new ArrayList<>(2);
+ ops.add(Op.delete(nodePath, -1));
+ ops.add(Op.delete(nodeAddedPath, -1));
+ zkClient.multi(ops, true);
+ }
+
public String getNodeName() {
return nodeName;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/57e97634/solr/core/src/java/org/apache/solr/core/CoreContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index b41d200..a9e815d 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -747,6 +747,11 @@ public class CoreContainer {
if (isZooKeeperAware()) {
cancelCoreRecoveries();
zkSys.zkController.publishNodeAsDown(zkSys.zkController.getNodeName());
+ try {
+ zkSys.zkController.removeEphemeralLiveNode();
+ } catch (Exception e) {
+ log.warn("Error removing live node. Continuing to close CoreContainer", e);
+ }
if (metricManager != null) {
metricManager.closeReporters(SolrMetricManager.getRegistryName(SolrInfoBean.Group.cluster));
}