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/08/17 23:11:38 UTC

[lucene-solr] 08/49: @522 Don't interrupt par exec on shutdown and reorg zkstatereader close a bit.

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 e0508909cbb12d1bbd8fab4b9bcd30c0d4ddbed6
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Aug 12 00:25:27 2020 -0500

    @522 Don't interrupt par exec on shutdown and reorg zkstatereader close a bit.
---
 solr/solrj/src/java/org/apache/solr/common/ParWork.java        |  1 -
 .../src/java/org/apache/solr/common/cloud/ZkStateReader.java   | 10 +++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/solr/solrj/src/java/org/apache/solr/common/ParWork.java b/solr/solrj/src/java/org/apache/solr/common/ParWork.java
index 31420f9..972a92b 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ParWork.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ParWork.java
@@ -102,7 +102,6 @@ public class ParWork implements Closeable {
     public static void closeExecutor() {
       ExecutorService exec = THREAD_LOCAL_EXECUTOR.get();
       if (exec != null) {
-        exec.shutdownNow();
         ParWork.close(exec);
         THREAD_LOCAL_EXECUTOR.set(null);
       }
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
index 6812776..0a30995 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
@@ -847,16 +847,20 @@ public class ZkStateReader implements SolrCloseable {
     this.closed = true;
     try {
       try (ParWork closer = new ParWork(this, false)) {
-
+        closer.collect(notifications);
+        closer.collect(() -> {
+          waitLatches.forEach((w) -> w.countDown());
+        });
         closer
             .add("notifications", notifications, () -> {
-              waitLatches.forEach((w) -> w.countDown());
+
               return null;
             });
 
         if (closeClient) {
-          closer.add("zkClient", zkClient);
+          closer.collect(zkClient);
         }
+        closer.addCollect("zkStateReaderInternals");
       }
     } finally {
       assert ObjectReleaseTracker.release(this);