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 2012/07/24 00:44:21 UTC
svn commit: r1364828 - in
/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud:
FullSolrCloudTest.java SyncSliceTest.java
Author: markrmiller
Date: Mon Jul 23 22:44:20 2012
New Revision: 1364828
URL: http://svn.apache.org/viewvc?rev=1364828&view=rev
Log:
avoid distrib search against down node in test
Modified:
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java?rev=1364828&r1=1364827&r2=1364828&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java Mon Jul 23 22:44:20 2012
@@ -106,7 +106,7 @@ public class FullSolrCloudTest extends A
protected ChaosMonkey chaosMonkey;
protected volatile ZkStateReader zkStateReader;
- private Map<String,SolrServer> shardToLeaderClient = new HashMap<String,SolrServer>();
+ protected Map<String,SolrServer> shardToLeaderClient = new HashMap<String,SolrServer>();
protected Map<String,CloudJettyRunner> shardToLeaderJetty = new HashMap<String,CloudJettyRunner>();
class CloudJettyRunner {
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java?rev=1364828&r1=1364827&r2=1364828&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java Mon Jul 23 22:44:20 2012
@@ -19,19 +19,24 @@ package org.apache.solr.cloud;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
+import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.common.SolrInputDocument;
+import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.params.CollectionParams.CollectionAction;
import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.servlet.SolrDispatchFilter;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -138,8 +143,28 @@ public class SyncSliceTest extends FullS
"to come to the aid of their country.");
// kill the leader - new leader could have all the docs or be missing one
- chaosMonkey.killJetty(shardToLeaderJetty.get("shard1").jetty);
+ JettySolrRunner leaderJetty = shardToLeaderJetty.get("shard1").jetty;
+ SolrServer leaderClient = shardToLeaderClient.get("shard1");
+ Set<JettySolrRunner> jetties = new HashSet<JettySolrRunner>();
+ for (int i = 0; i < shardCount; i++) {
+ jetties.add(shardToJetty.get("shard1").get(i).jetty);
+ }
+ jetties.remove(leaderJetty);
+
+ chaosMonkey.killJetty(leaderJetty);
+ JettySolrRunner upJetty = jetties.iterator().next();
+ // we are careful to make sure the downed node is no longer in the state,
+ // because on some systems (especially freebsd w/ blackhole enabled), trying
+ // to talk to a downed node causes grief
+ int tries = 0;
+ while (((SolrDispatchFilter) upJetty.getDispatchFilter().getFilter()).getCores().getZkController().getZkStateReader().getCloudState().liveNodesContain(clientToInfo.get(new CloudSolrServerClient(leaderClient)).get(ZkStateReader.NODE_NAME_PROP))) {
+ if (tries++ == 120) {
+ fail("Shard still reported as live in zk");
+ }
+ Thread.sleep(1000);
+ }
+
waitForThingsToLevelOut();
checkShardConsistency(false, true);