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 2020/07/22 14:01:32 UTC
[lucene-solr] branch reference_impl updated: @294 We always have to
clear live node on exists.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/reference_impl by this push:
new 4128687 @294 We always have to clear live node on exists.
4128687 is described below
commit 412868740919f8734a114ae4b729dd7f9ce924db
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Jul 22 09:00:28 2020 -0500
@294 We always have to clear live node on exists.
---
.../java/org/apache/solr/cloud/ZkController.java | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
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 2ddf746..7cb7d15 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -479,7 +479,7 @@ public class ZkController implements Closeable {
// we have to register as live first to pick up docs in the buffer
- createEphemeralLiveNode(true);
+ createEphemeralLiveNode();
List<CoreDescriptor> descriptors = descriptorsSupplier.get();
// re register all descriptors
@@ -1232,7 +1232,7 @@ public class ZkController implements Closeable {
worker.addCollect("ZkControllerInit");
}
// Do this last to signal we're up.
- createEphemeralLiveNode(false);
+ createEphemeralLiveNode();
// publishAndWaitForDownStates();
} catch (InterruptedException e) {
@@ -1379,7 +1379,7 @@ public class ZkController implements Closeable {
return zkClient.isConnected();
}
- private void createEphemeralLiveNode(boolean deleteOnExist) {
+ private void createEphemeralLiveNode() {
String nodeName = getNodeName();
String nodePath = ZkStateReader.LIVE_NODES_ZKNODE + "/" + nodeName;
@@ -1389,10 +1389,10 @@ public class ZkController implements Closeable {
// if (zkStateReader.getClusterState().getLiveNodes().size() == 0) {
// DistributedLock lock = new DistributedLock(zkClient.getSolrZooKeeper(), "/cluster_lock", zkClient.getZkACLProvider().getACLsToAdd("/cluster_lock"));
// try {
- log.info("get lock for creating ephem live node");
+ /// log.info("get lock for creating ephem live node");
// lock.lock();
log.info("do create ephem live node");
- createLiveNodeImpl(nodePath, nodeAddedPath, deleteOnExist);
+ createLiveNodeImpl(nodePath, nodeAddedPath);
// } finally {
// log.info("unlock");
// lock.unlock();
@@ -1402,7 +1402,7 @@ public class ZkController implements Closeable {
// }
}
- private void createLiveNodeImpl(String nodePath, String nodeAddedPath, boolean deleteOnExist) {
+ private void createLiveNodeImpl(String nodePath, String nodeAddedPath) {
Map<String, byte[]> dataMap = new HashMap<>(2);
Map<String, CreateMode> createModeMap = new HashMap<>(2);
dataMap.put(nodePath, null);
@@ -1425,12 +1425,9 @@ public class ZkController implements Closeable {
try {
zkClient.getSolrZooKeeper().create(nodePath, null, zkClient.getZkACLProvider().getACLsToAdd(nodePath), CreateMode.EPHEMERAL);
} catch (KeeperException.NodeExistsException e) {
- if (deleteOnExist) {
- zkClient.delete(nodePath, -1);
- zkClient.getSolrZooKeeper().create(nodePath, null, zkClient.getZkACLProvider().getACLsToAdd(nodePath), CreateMode.EPHEMERAL);
- } else {
- throw e;
- }
+ log.warn("Found our ephemeral live node already exists. This must be a quick restart after a hard shutdown, removing existing live node {}", nodePath);
+ zkClient.delete(nodePath, -1);
+ zkClient.getSolrZooKeeper().create(nodePath, null, zkClient.getZkACLProvider().getACLsToAdd(nodePath), CreateMode.EPHEMERAL);
}
} catch (Exception e) {
ParWork.propegateInterrupt(e);