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:17:27 UTC

[lucene-solr] branch reference_impl updated (cb96e94 -> a4a2f5e)

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a change to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git.


 discard cb96e94  @258 - More correct zkclient life cycle.
     new a4a2f5e  @258 - More correct zkclient life cycle.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (cb96e94)
            \
             N -- N -- N   refs/heads/reference_impl (a4a2f5e)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 solr/core/src/java/org/apache/solr/cloud/Overseer.java | 4 ++++
 1 file changed, 4 insertions(+)


[lucene-solr] 01/01: @258 - More correct zkclient life cycle.

Posted by ma...@apache.org.
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

commit a4a2f5e0e2e572d564a6e29446774647aa8dcf5c
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Jul 20 18:17:03 2020 -0500

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

diff --git a/solr/core/src/java/org/apache/solr/cloud/Overseer.java b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
index a124a9d..ed085ce 100644
--- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java
+++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
@@ -316,6 +316,10 @@ public class Overseer implements SolrCloseable {
           try {
             Set<String> processedNodes = new HashSet<>();
             while (queue != null && !queue.isEmpty()) {
+              if (Thread.currentThread().isInterrupted() || isClosed) {
+                log.info("Closing");
+                return;
+              }
               for (Pair<String, byte[]> head : queue) {
                 byte[] data = head.second();
                 final ZkNodeProps message = ZkNodeProps.load(data);
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;
-  }
 }