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/10/03 19:19:34 UTC
[lucene-solr] 01/06: @935 Shutdown.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 759a6da43e8639bb8b3b4e8f76b4beb2f8007bf5
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Fri Oct 2 15:34:01 2020 -0500
@935 Shutdown.
---
.../solr/handler/admin/MetricsHistoryHandler.java | 14 +++++++++++---
.../solr/metrics/rrd/SolrRrdBackendFactory.java | 22 +++++++++++++++-------
2 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHistoryHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHistoryHandler.java
index a39b9eb..fa4f32e 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/MetricsHistoryHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/MetricsHistoryHandler.java
@@ -71,6 +71,7 @@ import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.Base64;
import org.apache.solr.common.util.ExecutorUtil;
+import org.apache.solr.common.util.IOUtils;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.ObjectReleaseTracker;
import org.apache.solr.common.util.Pair;
@@ -623,15 +624,22 @@ public class MetricsHistoryHandler extends RequestHandlerBase implements Permiss
if (collectService != null) {
scheduledFuture.cancel(false);
- collectService.shutdownNow();
+ collectService.shutdown();
+ try {
+ boolean success = collectService.awaitTermination(1, TimeUnit.SECONDS);
+ if (!success) {
+ collectService.shutdownNow();
+ }
+ } catch (InterruptedException e) {
+ ParWork.propagateInterrupt(e);
+ }
}
try (ParWork closer = new ParWork(this)) {
closer.collect(knownDbs.values());
closer.collect(solrClient);
- closer.collect(factory);
}
- knownDbs.clear();
+ IOUtils.closeQuietly(factory);
assert ObjectReleaseTracker.release(this);
}
diff --git a/solr/core/src/java/org/apache/solr/metrics/rrd/SolrRrdBackendFactory.java b/solr/core/src/java/org/apache/solr/metrics/rrd/SolrRrdBackendFactory.java
index 7159037..315d8d9 100644
--- a/solr/core/src/java/org/apache/solr/metrics/rrd/SolrRrdBackendFactory.java
+++ b/solr/core/src/java/org/apache/solr/metrics/rrd/SolrRrdBackendFactory.java
@@ -467,16 +467,24 @@ public class SolrRrdBackendFactory extends RrdBackendFactory implements SolrClos
}
closed = true;
- scheduledFuture.cancel(true);
-
- syncService.shutdownNow();
+ if (scheduledFuture != null) {
+ scheduledFuture.cancel(false);
+ }
+ if (syncService != null) {
+ syncService.shutdown();
+ try {
+ boolean success = syncService.awaitTermination(1, TimeUnit.SECONDS);
+ if (!success) {
+ syncService.shutdownNow();
+ }
+ } catch (InterruptedException e) {
+ ParWork.propagateInterrupt(e);
+ }
+ }
- try (ParWork closer = new ParWork(this)) {
+ try (ParWork closer = new ParWork(this, true)) {
closer.collect(backends.values());
- closer.collect();
- closer.collect(syncService);
}
- backends.clear();
syncService = null;
assert ObjectReleaseTracker.release(this);
}