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 15:32:28 UTC
[lucene-solr] branch reference_impl updated: @298 Keep improving Zk
ConnectionManager.
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 da5361c @298 Keep improving Zk ConnectionManager.
da5361c is described below
commit da5361c3ac4872904f327e2b366bc0aee28e41e4
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Jul 22 10:32:16 2020 -0500
@298 Keep improving Zk ConnectionManager.
---
.../java/org/apache/solr/common/cloud/ConnectionManager.java | 11 +++++++++++
.../src/java/org/apache/solr/common/cloud/SolrZkClient.java | 3 +--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java
index 19729a2..1c4a519 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ConnectionManager.java
@@ -264,6 +264,10 @@ public class ConnectionManager implements Watcher, Closeable {
log.info("zkClient has disconnected");
disconnected();
connectionStrategy.disconnected();
+ } else if (state == KeeperState.Closed) {
+ log.info("zkClient has disconnected");
+ disconnected();
+ connectionStrategy.disconnected();
} else if (state == KeeperState.AuthFailed) {
log.warn("zkClient received AuthFailed");
}
@@ -283,6 +287,13 @@ public class ConnectionManager implements Watcher, Closeable {
log.info("Close called on ZK ConnectionManager");
this.isClosed = true;
this.likelyExpiredState = LikelyExpiredState.EXPIRED;
+ try {
+ waitForDisconnected(5000);
+ } catch (InterruptedException e) {
+ ParWork.propegateInterrupt(e);
+ } catch (TimeoutException e) {
+ log.warn("Timeout waiting for ZooKeeper client to disconnect");
+ }
}
private boolean isClosed() {
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
index b63ad8d..a2ceacf 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
@@ -106,8 +106,7 @@ public class SolrZkClient implements Closeable {
private final ExecutorService zkCallbackExecutor = new ParWorkExecutor("ZkCallback", 1);
- private final ExecutorService zkConnManagerCallbackExecutor =
- ExecutorUtil.newMDCAwareSingleThreadExecutor(new SolrNamedThreadFactory("zkConnectionManagerCallback"));
+ private final ExecutorService zkConnManagerCallbackExecutor = new ParWorkExecutor("zkConnectionManagerCallback", 1);
private volatile boolean isClosed = false;
private volatile ZkClientConnectionStrategy zkClientConnectionStrategy;