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/07/26 21:22:07 UTC

[lucene-solr] branch reference_impl updated: @360 it really whips the llama's ...

This is an automated email from the ASF dual-hosted git repository.

markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/reference_impl by this push:
     new 6f4e915  @360 it really whips the llama's ...
6f4e915 is described below

commit 6f4e915f5ce23d4e5eb43cb3ce3b8de69b8e0776
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Sun Jul 26 16:21:44 2020 -0500

    @360 it really whips the llama's ...
---
 .../src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java |  7 ++++++-
 .../src/java/org/apache/solr/update/UpdateShardHandler.java    | 10 ++--------
 .../org/apache/solr/client/solrj/impl/Http2SolrClient.java     |  9 +++++++++
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
index 26116d9..cbfd097 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
@@ -120,7 +120,7 @@ public class ZkStateWriter {
         prevState = reader.getClusterState();
         stats = new Stats();
         numUpdates = 0;
-        lastUpdatedTime = 0;
+        lastUpdatedTime = -1;
         continue;
 //        log.info("BadVersion");
 //        throw new AlreadyClosedException();
@@ -174,6 +174,8 @@ public class ZkStateWriter {
     if (log.isDebugEnabled()) {
       log.debug("writePendingUpdates() - start updates.size={}", updates.size());
     }
+
+
     assert prevState != null;
     Timer.Context timerContext = stats.time("update_state");
     boolean success = false;
@@ -186,6 +188,9 @@ public class ZkStateWriter {
         String path = ZkStateReader.getCollectionPath(name);
         DocCollection c = entry.getValue();
         int prevVersion = -1;
+        if (lastUpdatedTime == -1) {
+          prevVersion = 0;
+        }
         Stat stat = new Stat();
 
         try {
diff --git a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
index 5e4e9a9..fd9396e 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateShardHandler.java
@@ -35,12 +35,10 @@ import org.apache.solr.common.ParWork;
 import org.apache.solr.common.SolrException;
 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.SolrNamedThreadFactory;
 import org.apache.solr.core.SolrInfoBean;
 import org.apache.solr.metrics.SolrMetricManager;
-import org.apache.solr.metrics.SolrMetricProducer;
 import org.apache.solr.metrics.SolrMetricsContext;
 import org.apache.solr.security.HttpClientBuilderPlugin;
 import org.apache.solr.update.processor.DistributedUpdateProcessor;
@@ -65,8 +63,6 @@ public class UpdateShardHandler implements SolrInfoBean {
 
   private ExecutorService recoveryExecutor;
 
-  private final InstrumentedPoolingHttpClientConnectionManager updateOnlyConnectionManager;
-  
   private final InstrumentedPoolingHttpClientConnectionManager defaultConnectionManager;
 
   private final InstrumentedHttpRequestExecutor httpRequestExecutor;
@@ -82,12 +78,9 @@ public class UpdateShardHandler implements SolrInfoBean {
 
   public UpdateShardHandler(UpdateShardHandlerConfig cfg) {
     ObjectReleaseTracker.track(this);
-    updateOnlyConnectionManager = new InstrumentedPoolingHttpClientConnectionManager(HttpClientUtil.getSocketFactoryRegistryProvider().getSocketFactoryRegistry());
     defaultConnectionManager = new InstrumentedPoolingHttpClientConnectionManager(HttpClientUtil.getSocketFactoryRegistryProvider().getSocketFactoryRegistry());
     ModifiableSolrParams clientParams = new ModifiableSolrParams();
     if (cfg != null ) {
-      updateOnlyConnectionManager.setMaxTotal(cfg.getMaxUpdateConnections());
-      updateOnlyConnectionManager.setDefaultMaxPerRoute(cfg.getMaxUpdateConnectionsPerHost());
       defaultConnectionManager.setMaxTotal(cfg.getMaxUpdateConnections());
       defaultConnectionManager.setDefaultMaxPerRoute(cfg.getMaxUpdateConnectionsPerHost());
       clientParams.set(HttpClientUtil.PROP_SO_TIMEOUT, cfg.getDistributedSocketTimeout());
@@ -114,6 +107,7 @@ public class UpdateShardHandler implements SolrInfoBean {
           .maxConnectionsPerHost(cfg.getMaxUpdateConnectionsPerHost());
     }
     updateOnlyClient = updateOnlyClientBuilder.markInternalRequest().build();
+    updateOnlyClient.enableCloseLock();
     updateOnlyClient.addListenerFactory(updateHttpListenerFactory);
     Set<String> queryParams = new HashSet<>(2);
     queryParams.add(DistributedUpdateProcessor.DISTRIB_FROM);
@@ -217,7 +211,7 @@ public class UpdateShardHandler implements SolrInfoBean {
     if (recoveryExecutor != null) {
       recoveryExecutor.shutdownNow();
     }
-
+    updateOnlyClient.disableCloseLock();
     try (ParWork closer = new ParWork(this, true)) {
       closer.collect(() -> {
         HttpClientUtil.close(defaultClient);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index 49b706f..9c48636 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -861,6 +861,14 @@ public class Http2SolrClient extends SolrClient {
     return request(request, collection, null);
   }
 
+  public void enableCloseLock() {
+    closeTracker.enableCloseLock();
+  }
+
+  public void disableCloseLock() {
+    closeTracker.disableCloseLock();
+  }
+
   public void setRequestWriter(RequestWriter requestWriter) {
     this.requestWriter = requestWriter;
   }
@@ -1109,6 +1117,7 @@ public class Http2SolrClient extends SolrClient {
     public byte[] bytes;
   }
 
+
   public static SimpleResponse GET(String url, Http2SolrClient httpClient)
           throws InterruptedException, ExecutionException, TimeoutException {
     return doGet(url, httpClient);