You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2013/01/14 14:39:54 UTC

[2/5] git commit: fix tests after 5135

fix tests after 5135


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7de6f966
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7de6f966
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7de6f966

Branch: refs/heads/trunk
Commit: 7de6f9666b0b6dd18f8496f549a61279d7ba58ec
Parents: 713bba5
Author: Brandon Williams <br...@apache.org>
Authored: Mon Jan 14 07:39:33 2013 -0600
Committer: Brandon Williams <br...@apache.org>
Committed: Mon Jan 14 07:39:33 2013 -0600

----------------------------------------------------------------------
 .../cassandra/service/LeaveAndBootstrapTest.java   |   31 ++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7de6f966/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java b/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
index faa9e18..c2eae5c 100644
--- a/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
+++ b/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
@@ -84,6 +84,7 @@ public class LeaveAndBootstrapTest
         List<InetAddress> hosts = new ArrayList<InetAddress>();
 
         Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, RING_SIZE);
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         Map<Token, List<InetAddress>> expectedEndpoints = new HashMap<Token, List<InetAddress>>();
         for (String table : Schema.instance.getNonSystemTables())
@@ -104,6 +105,7 @@ public class LeaveAndBootstrapTest
         ss.onChange(hosts.get(LEAVING_NODE),
                 ApplicationState.STATUS,
                 valueFactory.leaving(endpointTokens.get(LEAVING_NODE)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         assertTrue(tmd.isLeaving(hosts.get(LEAVING_NODE)));
 
         AbstractReplicationStrategy strategy;
@@ -152,18 +154,20 @@ public class LeaveAndBootstrapTest
 
         // create a ring or 10 nodes
         Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, RING_SIZE);
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // nodes 6, 8 and 9 leave
         final int[] LEAVING = new int[] {6, 8, 9};
         for (int leaving : LEAVING)
             ss.onChange(hosts.get(leaving), ApplicationState.STATUS, valueFactory.leaving(endpointTokens.get(leaving)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // boot two new nodes with keyTokens.get(5) and keyTokens.get(7)
         InetAddress boot1 = InetAddress.getByName("127.0.1.1");
         ss.onChange(boot1, ApplicationState.STATUS, valueFactory.bootstrapping(keyTokens.get(5)));
         InetAddress boot2 = InetAddress.getByName("127.0.1.2");
         ss.onChange(boot2, ApplicationState.STATUS, valueFactory.bootstrapping(keyTokens.get(7)));
-
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         Collection<InetAddress> endpoints = null;
 
         /* don't require test update every time a new keyspace is added to test/conf/cassandra.yaml */
@@ -316,9 +320,12 @@ public class LeaveAndBootstrapTest
         // leaving and boot2 in progress
         ss.onChange(hosts.get(LEAVING[0]), ApplicationState.STATUS,
                 valueFactory.left(endpointTokens.get(LEAVING[0]), Gossiper.computeExpireTime()));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         ss.onChange(hosts.get(LEAVING[2]), ApplicationState.STATUS,
                 valueFactory.left(endpointTokens.get(LEAVING[2]), Gossiper.computeExpireTime()));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         ss.onChange(boot1, ApplicationState.STATUS, valueFactory.normal(keyTokens.get(5)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // adjust precalcuated results.  this changes what the epected endpoints are.
         expectedEndpoints.get("Keyspace1").get(new BigIntegerToken("55")).removeAll(makeAddrs("127.0.0.7", "127.0.0.8"));
@@ -340,6 +347,7 @@ public class LeaveAndBootstrapTest
         expectedEndpoints.get("Keyspace4").get(new BigIntegerToken("75")).removeAll(makeAddrs("127.0.0.10"));
         expectedEndpoints.get("Keyspace4").get(new BigIntegerToken("85")).removeAll(makeAddrs("127.0.0.10"));
 
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         for (Map.Entry<String, AbstractReplicationStrategy> tableStrategy : tableStrategyMap.entrySet())
         {
             String table = tableStrategy.getKey();
@@ -437,9 +445,11 @@ public class LeaveAndBootstrapTest
 
         // create a ring or 5 nodes
         Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, 7);
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // node 2 leaves
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.leaving(endpointTokens.get(2)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // don't bother to test pending ranges here, that is extensively tested by other
         // tests. Just check that the node is in appropriate lists.
@@ -449,6 +459,7 @@ public class LeaveAndBootstrapTest
 
         // Bootstrap the node immedidiately to keyTokens.get(4) without going through STATE_LEFT
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.bootstrapping(keyTokens.get(4)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertFalse(tmd.isMember(hosts.get(2)));
         assertFalse(tmd.isLeaving(hosts.get(2)));
@@ -456,6 +467,7 @@ public class LeaveAndBootstrapTest
 
         // Bootstrap node hosts.get(3) to keyTokens.get(1)
         ss.onChange(hosts.get(3), ApplicationState.STATUS, valueFactory.bootstrapping(keyTokens.get(1)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertFalse(tmd.isMember(hosts.get(3)));
         assertFalse(tmd.isLeaving(hosts.get(3)));
@@ -473,7 +485,9 @@ public class LeaveAndBootstrapTest
 
         // Go to normal again for both nodes
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.normal(keyTokens.get(3)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         ss.onChange(hosts.get(3), ApplicationState.STATUS, valueFactory.normal(keyTokens.get(2)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertTrue(tmd.isMember(hosts.get(2)));
         assertFalse(tmd.isLeaving(hosts.get(2)));
@@ -500,24 +514,30 @@ public class LeaveAndBootstrapTest
 
         // create a ring or 5 nodes
         Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, 6);
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // node 2 leaves
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.leaving(endpointTokens.get(2)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertTrue(tmd.isLeaving(hosts.get(2)));
         assertTrue(tmd.getToken(hosts.get(2)).equals(endpointTokens.get(2)));
 
         // back to normal
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.normal(keyTokens.get(2)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertTrue(tmd.getLeavingEndpoints().isEmpty());
         assertTrue(tmd.getToken(hosts.get(2)).equals(keyTokens.get(2)));
 
         // node 3 goes through leave and left and then jumps to normal at its new token
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.leaving(keyTokens.get(2)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         ss.onChange(hosts.get(2), ApplicationState.STATUS,
                 valueFactory.left(keyTokens.get(2), Gossiper.computeExpireTime()));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.normal(keyTokens.get(4)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertTrue(tmd.getBootstrapTokens().isEmpty());
         assertTrue(tmd.getLeavingEndpoints().isEmpty());
@@ -539,9 +559,11 @@ public class LeaveAndBootstrapTest
 
         // create a ring or 5 nodes
         Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, 6);
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // node 2 leaves with _different_ token
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.leaving(keyTokens.get(0)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertTrue(tmd.getToken(hosts.get(2)).equals(keyTokens.get(0)));
         assertTrue(tmd.isLeaving(hosts.get(2)));
@@ -549,6 +571,7 @@ public class LeaveAndBootstrapTest
 
         // go to boostrap
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.bootstrapping(keyTokens.get(1)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertFalse(tmd.isLeaving(hosts.get(2)));
         assertTrue(tmd.getBootstrapTokens().size() == 1);
@@ -556,6 +579,7 @@ public class LeaveAndBootstrapTest
 
         // jump to leaving again
         ss.onChange(hosts.get(2), ApplicationState.STATUS, valueFactory.leaving(keyTokens.get(1)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertTrue(tmd.getEndpoint(keyTokens.get(1)).equals(hosts.get(2)));
         assertTrue(tmd.isLeaving(hosts.get(2)));
@@ -564,6 +588,7 @@ public class LeaveAndBootstrapTest
         // go to state left
         ss.onChange(hosts.get(2), ApplicationState.STATUS,
                 valueFactory.left(keyTokens.get(1), Gossiper.computeExpireTime()));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertFalse(tmd.isMember(hosts.get(2)));
         assertFalse(tmd.isLeaving(hosts.get(2)));
@@ -584,15 +609,18 @@ public class LeaveAndBootstrapTest
 
         // create a ring of 6 nodes
         Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, 7);
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         // node hosts.get(2) goes jumps to left
         ss.onChange(hosts.get(2), ApplicationState.STATUS,
                 valueFactory.left(endpointTokens.get(2), Gossiper.computeExpireTime()));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertFalse(tmd.isMember(hosts.get(2)));
 
         // node hosts.get(4) goes to bootstrap
         ss.onChange(hosts.get(3), ApplicationState.STATUS, valueFactory.bootstrapping(keyTokens.get(1)));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertFalse(tmd.isMember(hosts.get(3)));
         assertTrue(tmd.getBootstrapTokens().size() == 1);
@@ -601,6 +629,7 @@ public class LeaveAndBootstrapTest
         // and then directly to 'left'
         ss.onChange(hosts.get(2), ApplicationState.STATUS,
                 valueFactory.left(keyTokens.get(1), Gossiper.computeExpireTime()));
+        PendingRangeCalculatorService.instance.blockUntilFinished();
 
         assertTrue(tmd.getBootstrapTokens().size() == 0);
         assertFalse(tmd.isMember(hosts.get(2)));