You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ho...@apache.org on 2016/03/22 17:40:49 UTC
[4/5] lucene-solr:jira/SOLR-445: SOLR-8862 work around. Maybe
something like this should be promoted into MiniSolrCloudCluster's start()
method? or SolrCloudTestCase's configureCluster?
SOLR-8862 work around. Maybe something like this should be promoted into MiniSolrCloudCluster's start() method? or SolrCloudTestCase's configureCluster?
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b6be74f2
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b6be74f2
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b6be74f2
Branch: refs/heads/jira/SOLR-445
Commit: b6be74f2182c46a10f861556ea81d3ed1a79a308
Parents: c740e69
Author: Chris Hostetter <ho...@apache.org>
Authored: Mon Mar 21 18:34:12 2016 -0700
Committer: Chris Hostetter <ho...@apache.org>
Committed: Mon Mar 21 18:34:12 2016 -0700
----------------------------------------------------------------------
.../cloud/TestTolerantUpdateProcessorCloud.java | 35 ++++++++++++++++++++
.../TestTolerantUpdateProcessorRandomCloud.java | 4 +--
2 files changed, 37 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6be74f2/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java
index 3c105c4..48c81de 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorCloud.java
@@ -113,6 +113,7 @@ public class TestTolerantUpdateProcessorCloud extends SolrCloudTestCase {
configureCluster(NUM_SERVERS)
.addConfig(configName, configDir.toPath())
.configure();
+ assertSpinLoopAllJettyAreRunning(cluster);
Map<String, String> collectionProperties = new HashMap<>();
collectionProperties.put("config", "solrconfig-distrib-update-processor-chains.xml");
@@ -764,6 +765,40 @@ public class TestTolerantUpdateProcessorCloud extends SolrCloudTestCase {
}
+ /**
+ * HACK: Loops over every Jetty instance in the specified MiniSolrCloudCluster to see if they are running,
+ * and sleeps small increments until they all report that they are, or a max num iters is reached
+ *
+ * (work around for SOLR-8862. Maybe something like this should be promoted into MiniSolrCloudCluster's
+ * start() method? or SolrCloudTestCase's configureCluster?)
+ */
+ public static void assertSpinLoopAllJettyAreRunning(MiniSolrCloudCluster cluster) throws InterruptedException {
+ // NOTE: idealy we could use an ExecutorService that tried to open Sockets (with a long timeout)
+ // to each of the jetty instances in parallel w/o any sleeping -- but since they pick their ports
+ // dynamically and don't report them until/unless the server is up, that won't neccessarily do us
+ // any good.
+ final int numServers = cluster.getJettySolrRunners().size();
+ int numRunning = 0;
+ for (int i = 5; 0 <= i; i--) {
+ numRunning = 0;
+ for (JettySolrRunner jetty : cluster.getJettySolrRunners()) {
+ if (jetty.isRunning()) {
+ numRunning++;
+ }
+ }
+ if (numServers == numRunning) {
+ return;
+ } else if (0 == i) {
+ // give up
+ break;
+ }
+ // the more nodes we're waiting on, the longer we should try to sleep (within reason)
+ Thread.sleep(Math.min((numServers - numRunning) * 100, 1000));
+ }
+ assertEquals("giving up waiting for all jetty instances to be running",
+ numServers, numRunning);
+ }
+
/** Asserts that the UpdateResponse contains the specified expectedErrs and no others */
public static void assertUpdateTolerantErrors(String assertionMsgPrefix,
UpdateResponse response,
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b6be74f2/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java
index 536bb89..6e5daeb 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTolerantUpdateProcessorRandomCloud.java
@@ -104,8 +104,8 @@ public class TestTolerantUpdateProcessorRandomCloud extends SolrCloudTestCase {
configureCluster(numServers)
.addConfig(configName, configDir.toPath())
.configure();
-
- Thread.sleep(2000); // anoying attempt to work arround SOLR-8862 // nocommit ? ? ?
+
+ TestTolerantUpdateProcessorCloud.assertSpinLoopAllJettyAreRunning(cluster);
Map<String, String> collectionProperties = new HashMap<>();
collectionProperties.put("config", "solrconfig-distrib-update-processor-chains.xml");