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/25 06:36:46 UTC
svn commit: r1365439 - in /lucene/dev/branches/branch_4x: ./ solr/
solr/core/ solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
Author: markrmiller
Date: Wed Jul 25 04:36:45 2012
New Revision: 1365439
URL: http://svn.apache.org/viewvc?rev=1365439&view=rev
Log:
more black hole avoidance
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java?rev=1365439&r1=1365438&r2=1365439&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java Wed Jul 25 04:36:45 2012
@@ -685,19 +685,21 @@ public class FullSolrCloudTest extends A
// kill a shard
CloudJettyRunner deadShard = chaosMonkey.stopShard(SHARD2, 0);
cloudClient.connect();
- int tries = 0;
- while (cloudClient
- .getZkStateReader()
- .getCloudState()
- .liveNodesContain(
- shardToJetty.get(SHARD2).get(0).info
- .get(ZkStateReader.NODE_NAME_PROP))) {
- if (tries++ == 60) {
- fail("Shard still reported as live in zk");
- }
- Thread.sleep(1000);
+
+ // 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
+ Set<CloudJettyRunner> jetties = new HashSet<CloudJettyRunner>();
+ jetties.addAll(shardToJetty.get(SHARD2));
+ jetties.remove(deadShard);
+
+ for (CloudJettyRunner cjetty : jetties) {
+ waitToSeeNotLive(((SolrDispatchFilter) cjetty.jetty.getDispatchFilter()
+ .getFilter()).getCores().getZkController().getZkStateReader(),
+ deadShard);
}
-
+ waitToSeeNotLive(cloudClient.getZkStateReader(), deadShard);
+
// ensure shard is dead
try {
index_specific(deadShard.client.solrClient, id, 999, i1, 107, t1,
@@ -715,25 +717,7 @@ public class FullSolrCloudTest extends A
// System.out.println("clouddocs:" + cloudClientDocs);
// try to index to a living shard at shard2
-
- // 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
- tries = 0;
- while (((SolrDispatchFilter) shardToJetty.get(SHARD2).get(1).jetty
- .getDispatchFilter().getFilter())
- .getCores()
- .getZkController()
- .getZkStateReader()
- .getCloudState()
- .liveNodesContain(
- shardToJetty.get(SHARD2).get(0).info
- .get(ZkStateReader.NODE_NAME_PROP))) {
- if (tries++ == 120) {
- fail("Shard still reported as live in zk");
- }
- Thread.sleep(1000);
- }
+
long numFound1 = cloudClient.query(new SolrQuery("*:*")).getResults().getNumFound();
@@ -812,6 +796,13 @@ public class FullSolrCloudTest extends A
// recover over 100 docs so we do more than just peer sync (replicate recovery)
chaosMonkey.stopJetty(deadShard);
+ for (CloudJettyRunner cjetty : jetties) {
+ waitToSeeNotLive(((SolrDispatchFilter) cjetty.jetty.getDispatchFilter()
+ .getFilter()).getCores().getZkController().getZkStateReader(),
+ deadShard);
+ }
+ waitToSeeNotLive(cloudClient.getZkStateReader(), deadShard);
+
for (int i = 0; i < 226; i++) {
doc = new SolrInputDocument();
doc.addField("id", 2000 + i);
@@ -1496,4 +1487,16 @@ public class FullSolrCloudTest extends A
throw new RuntimeException(ex);
}
}
+
+ protected void waitToSeeNotLive(ZkStateReader zkStateReader,
+ CloudJettyRunner cjetty) throws InterruptedException {
+ int tries = 0;
+ while (zkStateReader.getCloudState()
+ .liveNodesContain(cjetty.info.get(ZkStateReader.NODE_NAME_PROP))) {
+ if (tries++ == 120) {
+ fail("Shard still reported as live in zk");
+ }
+ Thread.sleep(1000);
+ }
+ }
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java?rev=1365439&r1=1365438&r2=1365439&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/SyncSliceTest.java Wed Jul 25 04:36:45 2012
@@ -143,9 +143,7 @@ public class SyncSliceTest extends FullS
CloudJettyRunner leaderJetty = shardToLeaderJetty.get("shard1");
Set<CloudJettyRunner> jetties = new HashSet<CloudJettyRunner>();
- for (int i = 0; i < shardCount; i++) {
- jetties.add(shardToJetty.get("shard1").get(i));
- }
+ jetties.addAll(shardToJetty.get("shard1"));
jetties.remove(leaderJetty);
chaosMonkey.killJetty(leaderJetty);
@@ -168,18 +166,6 @@ public class SyncSliceTest extends FullS
assertEquals(5, cloudClientDocs);
}
- private void waitToSeeNotLive(ZkStateReader zkStateReader,
- CloudJettyRunner cjetty) throws InterruptedException {
- int tries = 0;
- while (zkStateReader.getCloudState()
- .liveNodesContain(cjetty.info.get(ZkStateReader.NODE_NAME_PROP))) {
- if (tries++ == 120) {
- fail("Shard still reported as live in zk");
- }
- Thread.sleep(1000);
- }
- }
-
private void waitForThingsToLevelOut() throws Exception {
int cnt = 0;
boolean retry = false;