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);
     }
   }