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/02 19:57:04 UTC

[lucene-solr] 02/04: @932 Trying out.

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 a22eb6032419b94b6c0c56439e061ac79bee3c33
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Fri Oct 2 14:18:25 2020 -0500

    @932 Trying out.
---
 .../org/apache/solr/cloud/OverseerTaskProcessor.java | 20 ++++++++------------
 .../OverseerCollectionMessageHandler.java            |  2 +-
 .../src/java/org/apache/solr/core/CoreContainer.java |  4 ----
 3 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
index 4078432..7a3ee82 100644
--- a/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
+++ b/solr/core/src/java/org/apache/solr/cloud/OverseerTaskProcessor.java
@@ -251,13 +251,13 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
             continue;
           }
           OverseerMessageHandler messageHandler = selector.selectOverseerMessageHandler(message);
-          OverseerMessageHandler.Lock lock = messageHandler.lockTask(message, taskBatch);
-          if (lock == null) {
-            log.debug("Exclusivity check failed for [{}]", message.toString());
-            // we may end crossing the size of the MAX_BLOCKED_TASKS. They are fine
-            if (blockedTasks.size() < MAX_BLOCKED_TASKS) blockedTasks.put(head.getId(), head);
-            continue;
-          }
+//          OverseerMessageHandler.Lock lock = messageHandler.lockTask(message, taskBatch);
+//          if (lock == null) {
+//            log.debug("Exclusivity check failed for [{}]", message.toString());
+//            // we may end crossing the size of the MAX_BLOCKED_TASKS. They are fine
+//            if (blockedTasks.size() < MAX_BLOCKED_TASKS) blockedTasks.put(head.getId(), head);
+//            continue;
+//          }
           try {
             markTaskAsRunning(head, asyncId);
             if (log.isDebugEnabled()) {
@@ -273,7 +273,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
             throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
           }
           if (log.isDebugEnabled()) log.debug(messageHandler.getName() + ": Get the message id:" + head.getId() + " message:" + message.toString());
-          Runner runner = new Runner(messageHandler, message, operation, head, lock);
+          Runner runner = new Runner(messageHandler, message, operation, head, null);
           taskFutures.put(runner, ParWork.getRootSharedExecutor().submit(runner));
         }
 
@@ -420,7 +420,6 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
   protected class Runner implements Runnable {
     final ZkNodeProps message;
     final String operation;
-    private final OverseerMessageHandler.Lock lock;
     volatile OverseerSolrResponse response;
     final QueueEvent head;
     final OverseerMessageHandler messageHandler;
@@ -430,7 +429,6 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
       this.operation = operation;
       this.head = head;
       this.messageHandler = messageHandler;
-      this.lock = lock;
     }
 
 
@@ -488,8 +486,6 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
           return;
         }
         log.error("Exception running task", e);
-      } finally {
-        lock.unlock();
       }
 
       if (log.isDebugEnabled()) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
index 3a14536..38d2aa7 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java
@@ -906,7 +906,7 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler,
   private LockTree.Session lockSession;
 
   @Override
-  public Lock lockTask(ZkNodeProps message, OverseerTaskProcessor.TaskBatch taskBatch) {
+  public synchronized Lock lockTask(ZkNodeProps message, OverseerTaskProcessor.TaskBatch taskBatch) {
     if (lockSession == null || sessionId != taskBatch.getId()) {
       //this is always called in the same thread.
       //Each batch is supposed to have a new taskBatch
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index 4b29f02..aff3e92 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -1407,16 +1407,12 @@ public class CoreContainer implements Closeable {
         solrCores.removeCoreDescriptor(dcore);
       }
       final SolrException solrException = new SolrException(ErrorCode.SERVER_ERROR, "Unable to create core [" + dcore.getName() + "]", e);
-      if (core != null && !core.isClosed())
-        ParWork.close(core);
       throw solrException;
     } catch (Throwable t) {
       log.error("Unable to create SolrCore", t);
       SolrException e = new SolrException(ErrorCode.SERVER_ERROR, "JVM Error creating core [" + dcore.getName() + "]: " + t.getMessage(), t);
       coreInitFailures.put(dcore.getName(), new CoreLoadFailure(dcore, e));
       solrCores.removeCoreDescriptor(dcore);
-      if (core != null && !core.isClosed())
-        IOUtils.closeQuietly(core);
       throw t;
     } finally {
       MDCLoggingContext.clear();