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/09/09 17:01:53 UTC
[lucene-solr] branch reference_impl_dev updated: @824 A little
close work.
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
The following commit(s) were added to refs/heads/reference_impl_dev by this push:
new ff11e1a @824 A little close work.
ff11e1a is described below
commit ff11e1adaa23107f6356186b89b5b19c8dbb1888
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Sep 9 12:01:31 2020 -0500
@824 A little close work.
---
.../apache/solr/handler/admin/MetricsHistoryHandler.java | 9 ++++-----
.../org/apache/solr/metrics/rrd/SolrRrdBackendFactory.java | 14 +++++++++++---
2 files changed, 15 insertions(+), 8 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 8e87ed9..1e52aba 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
@@ -230,7 +230,7 @@ public class MetricsHistoryHandler extends RequestHandlerBase implements Permiss
TimeUnit.MILLISECONDS);
checkSystemCollection();
}
- ObjectReleaseTracker.track(this);
+ assert ObjectReleaseTracker.track(this);
}
// check that .system exists
@@ -617,15 +617,14 @@ public class MetricsHistoryHandler extends RequestHandlerBase implements Permiss
if (log.isDebugEnabled()) {
log.debug("Closing {}", hashCode());
}
-
+ collectService.shutdownNow();
try (ParWork closer = new ParWork(this)) {
closer.collect(factory);
- closer.addCollect();
+ closer.collect(knownDbs.values());
closer.collect(collectService);
}
-
knownDbs.clear();
- ObjectReleaseTracker.release(this);
+ assert ObjectReleaseTracker.release(this);
}
public enum Cmd {
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 db75478..0fa0d9b 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
@@ -36,6 +36,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.common.ParWork;
import org.apache.solr.common.SolrCloseable;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
@@ -46,6 +47,7 @@ import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.IOUtils;
+import org.apache.solr.common.util.ObjectReleaseTracker;
import org.apache.solr.common.util.Pair;
import org.apache.solr.common.util.TimeSource;
import org.apache.solr.common.util.SolrNamedThreadFactory;
@@ -98,6 +100,7 @@ public class SolrRrdBackendFactory extends RrdBackendFactory implements SolrClos
* @param timeSource time source
*/
public SolrRrdBackendFactory(SolrClient solrClient, String collection, int syncPeriod, TimeSource timeSource) {
+ assert ObjectReleaseTracker.release(this);
this.solrClient = solrClient;
this.timeSource = timeSource;
this.collection = collection;
@@ -460,10 +463,15 @@ public class SolrRrdBackendFactory extends RrdBackendFactory implements SolrClos
log.debug("Closing {}", hashCode());
}
closed = true;
- backends.forEach((p, b) -> IOUtils.closeQuietly(b));
- backends.clear();
+
syncService.shutdownNow();
- ExecutorUtil.awaitTermination(syncService);
+ try (ParWork closer = new ParWork(this)) {
+ closer.collect(backends.values());
+ closer.collect(syncService);
+ closer.collect(syncService);
+ }
+ backends.clear();
syncService = null;
+ assert ObjectReleaseTracker.release(this);
}
}