You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2013/04/09 17:59:36 UTC
svn commit: r1466093 -
/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
Author: shalin
Date: Tue Apr 9 15:59:35 2013
New Revision: 1466093
URL: http://svn.apache.org/r1466093
Log:
SOLR-3755: Make ChaosMonkeyShardSplitTest more consistent with ShardSplitTest
Modified:
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java?rev=1466093&r1=1466092&r2=1466093&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyShardSplitTest.java Tue Apr 9 15:59:35 2013
@@ -105,9 +105,9 @@ public class ChaosMonkeyShardSplitTest e
public ChaosMonkeyShardSplitTest() {
super();
- fixShardCount = true;
- sliceCount = 1;
- shardCount = TEST_NIGHTLY ? 7 : 4;
+// fixShardCount = true;
+// sliceCount = 1;
+// shardCount = TEST_NIGHTLY ? 7 : 4;
}
@Override
@@ -118,11 +118,14 @@ public class ChaosMonkeyShardSplitTest e
waitForThingsToLevelOut(15);
printLayout();
-
- PlainIdRouter router = new PlainIdRouter();
- final List<DocRouter.Range> ranges = router.partitionRange(2,
- router.fullRange());
+
+ ClusterState clusterState = cloudClient.getZkStateReader().getClusterState();
+ DocRouter router = clusterState.getCollection(AbstractDistribZkTestBase.DEFAULT_COLLECTION).getRouter();
+ Slice shard1 = clusterState.getSlice(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1);
+ DocRouter.Range shard1Range = shard1.getRange() != null ? shard1.getRange() : router.fullRange();
+ final List<DocRouter.Range> ranges = router.partitionRange(2, shard1Range);
final int[] docCounts = new int[ranges.size()];
+ int numReplicas = shard1.getReplicas().size();
Thread indexThread = null;
OverseerRestarter killer = null;
Thread killerThread = null;
@@ -131,9 +134,7 @@ public class ChaosMonkeyShardSplitTest e
try {
solrServer.deleteByQuery("*:*");
for (int i = 0; i < 100; i++) {
- SolrInputDocument doc = new SolrInputDocument();
- doc.addField("id", i);
- solrServer.add(doc);
+ indexr("id", i);
// todo - hook in custom hashing
byte[] bytes = String.valueOf(i).getBytes("UTF-8");
@@ -152,9 +153,7 @@ public class ChaosMonkeyShardSplitTest e
public void run() {
for (int i = 101; i < 201; i++) {
try {
- SolrInputDocument doc = new SolrInputDocument();
- doc.addField("id", i);
- solrServer.add(doc);
+ indexr("id", i);
// todo - hook in custom hashing
byte[] bytes = String.valueOf(i).getBytes("UTF-8");
@@ -273,6 +272,28 @@ public class ChaosMonkeyShardSplitTest e
assertEquals("Wrong doc count on shard1_0", docCounts[0], shard10Count);
assertEquals("Wrong doc count on shard1_1", docCounts[1], shard11Count);
+
+ Slice slice1_0 = null, slice1_1 = null;
+ int i = 0;
+ for (i = 0; i < 10; i++) {
+ ZkStateReader zkStateReader = cloudClient.getZkStateReader();
+ zkStateReader.updateClusterState(true);
+ clusterState = zkStateReader.getClusterState();
+ slice1_0 = clusterState.getSlice(AbstractDistribZkTestBase.DEFAULT_COLLECTION, "shard1_0");
+ slice1_1 = clusterState.getSlice(AbstractDistribZkTestBase.DEFAULT_COLLECTION, "shard1_1");
+ if (Slice.ACTIVE.equals(slice1_0.getState()) && Slice.ACTIVE.equals(slice1_1.getState()))
+ break;
+ Thread.sleep(500);
+ }
+
+ log.info("ShardSplitTest waited for {} ms for shard state to be set to active", i * 500);
+
+ assertNotNull("Cluster state does not contain shard1_0", slice1_0);
+ assertNotNull("Cluster state does not contain shard1_0", slice1_1);
+ assertEquals("shard1_0 is not active", Slice.ACTIVE, slice1_0.getState());
+ assertEquals("shard1_1 is not active", Slice.ACTIVE, slice1_1.getState());
+ assertEquals("Wrong number of replicas created for shard1_0", numReplicas, slice1_0.getReplicas().size());
+ assertEquals("Wrong number of replicas created for shard1_1", numReplicas, slice1_1.getReplicas().size());
// todo - can't call waitForThingsToLevelOut because it looks for
// jettys of all shards