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/29 17:32:17 UTC

[lucene-solr] branch reference_impl_dev updated: @1072 Harden.

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 f00aeab  @1072 Harden.
f00aeab is described below

commit f00aeabdbd5ef5a70eccf165f3353a3f629b40bd
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Thu Oct 29 12:31:59 2020 -0500

    @1072 Harden.
---
 .../cloud/api/collections/OverseerCollectionMessageHandler.java  | 9 ++++++++-
 solr/core/src/java/org/apache/solr/update/UpdateLog.java         | 4 ++++
 solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java     | 1 +
 solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java  | 1 +
 .../src/test/org/apache/solr/handler/PingRequestHandlerTest.java | 2 ++
 solr/core/src/test/org/apache/solr/handler/TestConfigReload.java | 4 +++-
 6 files changed, 19 insertions(+), 2 deletions(-)

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 8f8de2c..a62e83a 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
@@ -844,8 +844,15 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler,
       if (overseer.isClosed()) {
         throw new AlreadyClosedException();
       }
+      boolean success = false;
+      for (int i = 0; i < 5; i++) {
+        if (overseer.isClosed() || overseer.getCoreContainer().isShutDown()) {
+          break;
+        }
+         success = latch.await(3, TimeUnit.SECONDS); // nocommit - still need a central timeout strat
+      }
+
 
-      boolean success = latch.await(15, TimeUnit.SECONDS); // nocommit - still need a central timeout strat
       if (!success) {
         throw new SolrException(ErrorCode.SERVER_ERROR, "Timeout waiting to see async zk node " + asyncPathToWaitOn);
       }
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 4f126be..52d2f84 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateLog.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
@@ -51,6 +51,7 @@ import com.codahale.metrics.Meter;
 import org.apache.commons.lang3.concurrent.ConcurrentUtils;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.lucene.util.BytesRef;
+import org.apache.solr.common.AlreadyClosedException;
 import org.apache.solr.common.ParWork;
 import org.apache.solr.common.SolrDocumentBase;
 import org.apache.solr.common.SolrException;
@@ -502,6 +503,9 @@ public class UpdateLog implements PluginInfoInitialized, SolrMetricProducer {
    * change the implementation of the transaction log.
    */
   public TransactionLog newTransactionLog(File tlogFile, Collection<String> globalStrings, boolean openExisting) {
+    if (isClosed || uhandler.core.isClosing()) {
+      throw new AlreadyClosedException();
+    }
     return new TransactionLog(tlogFile, globalStrings, openExisting);
   }
 
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
index 14e1f00..17ec68d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteNodeTest.java
@@ -53,6 +53,7 @@ public class DeleteNodeTest extends SolrCloudTestCase {
   public void test() throws Exception {
     CloudHttp2SolrClient cloudClient = cluster.getSolrClient();
     String coll = "deletenodetest_coll";
+    cloudClient.getZkStateReader().forciblyRefreshAllClusterStateSlow();
     ClusterState state = cloudClient.getZkStateReader().getClusterState();
     Set<String> liveNodes = state.getLiveNodes();
     ArrayList<String> l = new ArrayList<>(liveNodes);
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
index 0786eb7..f85408e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteReplicaTest.java
@@ -200,6 +200,7 @@ public class DeleteReplicaTest extends SolrCloudTestCase {
 
   @Test
   // commented out on: 17-Feb-2019   @BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028") // annotated on: 24-Dec-2018
+  @Nightly
   public void deleteReplicaByCountForAllShards() throws Exception {
     final String collectionName = "deleteByCountNew";
     Create req = CollectionAdminRequest.createCollection(collectionName, "conf", 2, 2);
diff --git a/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
index c768615..4b988c0 100644
--- a/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.client.solrj.embedded.JettySolrRunner;
 import org.apache.solr.client.solrj.impl.CloudHttp2SolrClient;
@@ -35,6 +36,7 @@ import org.apache.solr.response.SolrQueryResponse;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
+@LuceneTestCase.Nightly // slow
 public class PingRequestHandlerTest extends SolrTestCaseJ4 {
   protected int NUM_SERVERS = 5;
   protected int NUM_SHARDS = 2;
diff --git a/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java b/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java
index 5b7db83..c09e35d 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestConfigReload.java
@@ -27,6 +27,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.util.EntityUtils;
+import org.apache.lucene.util.LuceneTestCase;
 import org.apache.solr.client.solrj.impl.Http2SolrClient;
 import org.apache.solr.client.solrj.impl.HttpClientUtil;
 import org.apache.solr.cloud.AbstractFullDistribZkTestBase;
@@ -52,6 +53,7 @@ import org.slf4j.LoggerFactory;
 
 import static java.util.Arrays.asList;
 
+@LuceneTestCase.Nightly
 public class TestConfigReload extends SolrCloudBridgeTestCase {
 
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -105,7 +107,7 @@ public class TestConfigReload extends SolrCloudBridgeTestCase {
     HashSet<String> succeeded = new HashSet<>();
 
     while ( TimeUnit.SECONDS.convert(System.nanoTime() - startTime, TimeUnit.NANOSECONDS) < maxTimeoutSeconds){
-      Thread.sleep(500);
+      Thread.sleep(250);
       for (String url : urls) {
         MapWriter respMap = getAsMap(url + uri);
         if (String.valueOf(newVersion).equals(respMap._getStr(asList(name, "znodeVersion"), null))) {