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;