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/04 13:24:08 UTC
[lucene-solr] 02/04: @735 Tweak about, rare UpdateLog leak issue.
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 7ee9163fe5c0e37d08c6311f2485cf17a7176abe
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Fri Sep 4 08:16:48 2020 -0500
@735 Tweak about, rare UpdateLog leak issue.
---
.../src/java/org/apache/solr/update/DirectUpdateHandler2.java | 10 +---------
.../src/java/org/apache/solr/update/SolrCmdDistributor.java | 2 +-
solr/core/src/java/org/apache/solr/update/UpdateLog.java | 5 ++++-
3 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
index 68262eb..99dabc2 100644
--- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
+++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
@@ -806,19 +806,11 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
@Override
public void close() throws IOException {
log.debug("closing {}", this);
-
try (ParWork closer = new ParWork(this, true)) {
closer.collect(commitTracker);
closer.collect(softCommitTracker);
-
- closer.collect("superClose", ()->{
- try {
- super.close();
- } catch (IOException e) {
- log.error("", e);
- }
- });
}
+ super.close();
numDocsPending.reset();
ObjectReleaseTracker.release(this);
}
diff --git a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
index cd23463..4ee36d8 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
@@ -150,7 +150,7 @@ public class SolrCmdDistributor implements Closeable {
if (cmd.isDeleteById()) {
uReq.deleteById(cmd.getId(), cmd.getRoute(), cmd.getVersion());
} else {
- blockAndDoRetries();
+ solrClient.waitForOutstandingRequests();
uReq.deleteByQuery(cmd.query);
}
diff --git a/solr/core/src/java/org/apache/solr/update/UpdateLog.java b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
index e5c9069..e27732d 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateLog.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
@@ -443,8 +443,11 @@ public class UpdateLog implements PluginInfoInitialized, SolrMetricProducer {
}
core.getCoreMetricManager().registerMetricProducer(SolrInfoBean.Category.TLOG.toString(), this);
- } catch (Exception e) {
+ } catch (Throwable e) {
ParWork.propegateInterrupt(e);
+ if (e instanceof Error) {
+ throw e;
+ }
ObjectReleaseTracker.release(this);
}
}