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/20 23:14:03 UTC

[lucene-solr] branch reference_impl updated: @258 - More correct zkclient life cycle.

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 cb96e94  @258 - More correct zkclient life cycle.
cb96e94 is described below

commit cb96e941dc5f98a54a0ef2f8c2804b9f96f96924
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Jul 20 18:13:50 2020 -0500

    @258 - More correct zkclient life cycle.
---
 solr/core/src/java/org/apache/solr/core/ZkContainer.java |  2 +-
 .../java/org/apache/solr/servlet/SolrDispatchFilter.java | 16 +++++++---------
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/core/ZkContainer.java b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
index 54cd6a7..610162b 100644
--- a/solr/core/src/java/org/apache/solr/core/ZkContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
@@ -244,7 +244,7 @@ public class ZkContainer implements Closeable {
 
   public void close() {
     try (ParWork closer = new ParWork(this, true)) {
-      closer.add("zkContainer", zkController, zkClient, zkServer);
+      closer.add("zkContainer", zkController, zkServer);
     }
   }
 }
diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
index fdcee4c..7d3b33f 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
@@ -118,6 +118,7 @@ public class SolrDispatchFilter extends BaseSolrFilter {
   private SolrMetricManager metricManager;
   private String registryName;
   private volatile boolean closeOnDestroy = true;
+  private volatile SolrZkClient zkClient;
 
   /**
    * Enum to define action that needs to be processed.
@@ -281,7 +282,6 @@ public class SolrDispatchFilter extends BaseSolrFilter {
    */
   protected CoreContainer createCoreContainer(Path solrHome, Properties extraProperties) {
     String zkHost = System.getProperty("zkHost");
-    SolrZkClient zkClient = null;
     if (!StringUtils.isEmpty(zkHost)) {
       int startUpZkTimeOut = Integer.getInteger("waitForZk", 10); // nocommit - zk settings
       zkClient = new SolrZkClient(zkHost, (int) TimeUnit.SECONDS.toMillis(startUpZkTimeOut));
@@ -339,9 +339,7 @@ public class SolrDispatchFilter extends BaseSolrFilter {
   
   @Override
   public void destroy() {
-    if (closeOnDestroy) {
-      close();
-    }
+    close();
   }
   
   public void close() {
@@ -362,7 +360,11 @@ public class SolrDispatchFilter extends BaseSolrFilter {
     } finally {
       if (cc != null) {
         httpClient = null;
-        cc.shutdown();
+        try {
+          ParWork.close(cc);
+        } finally {
+          ParWork.close(zkClient);
+        }
       }
       GlobalTracer.get().close();
     }
@@ -703,8 +705,4 @@ public class SolrDispatchFilter extends BaseSolrFilter {
       return response;
     }
   }
-  
-  public void closeOnDestroy(boolean closeOnDestroy) {
-    this.closeOnDestroy = closeOnDestroy;
-  }
 }