You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2013/11/19 18:27:09 UTC

[1/5] git commit: Fix TokenMetadataTest

Updated Branches:
  refs/heads/cassandra-2.0 47724e6b7 -> 6b1fb2ce7


Fix TokenMetadataTest


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

Branch: refs/heads/cassandra-2.0
Commit: 0a5a766d52f3c06399bfa8826df836b3dc070a20
Parents: 582a16e
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Nov 19 17:21:19 2013 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Nov 19 17:21:19 2013 +0100

----------------------------------------------------------------------
 .../cassandra/locator/TokenMetadataTest.java    | 30 ++++++++++----------
 1 file changed, 15 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a5a766d/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java b/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
index 9f93b2f..f2dc381 100644
--- a/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
+++ b/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
@@ -37,21 +37,20 @@ public class TokenMetadataTest
     public final static String ONE = "1";
     public final static String SIX = "6";
 
-    public static ArrayList<Token> RING;
+    static TokenMetadata tmd;
 
     @BeforeClass
     public static void beforeClass() throws Throwable
     {
-        TokenMetadata tmd = StorageService.instance.getTokenMetadata();
+        tmd = StorageService.instance.getTokenMetadata();
         tmd.updateNormalToken(token(ONE), InetAddress.getByName("127.0.0.1"));
         tmd.updateNormalToken(token(SIX), InetAddress.getByName("127.0.0.6"));
-        RING = tmd.sortedTokens();
     }
 
-    private void testRingIterator(String start, boolean includeMin, String... expected)
+    private void testRingIterator(ArrayList<Token> ring, String start, boolean includeMin, String... expected)
     {
         ArrayList<Token> actual = new ArrayList<Token>();
-        Iterators.addAll(actual, TokenMetadata.ringIterator(RING, token(start), includeMin));
+        Iterators.addAll(actual, TokenMetadata.ringIterator(ring, token(start), includeMin));
         assertEquals(actual.toString(), expected.length, actual.size());
         for (int i = 0; i < expected.length; i++)
             assertEquals("Mismatch at index " + i + ": " + actual, token(expected[i]), actual.get(i));
@@ -60,25 +59,26 @@ public class TokenMetadataTest
     @Test
     public void testRingIterator()
     {
-        testRingIterator("2", false, "6", "1");
-        testRingIterator("7", false, "1", "6");
-        testRingIterator("0", false, "1", "6");
-        testRingIterator("", false, "1", "6");
+        ArrayList<Token> ring = tmd.sortedTokens();
+        testRingIterator(ring, "2", false, "6", "1");
+        testRingIterator(ring, "7", false, "1", "6");
+        testRingIterator(ring, "0", false, "1", "6");
+        testRingIterator(ring, "", false, "1", "6");
     }
 
     @Test
     public void testRingIteratorIncludeMin()
     {
-        testRingIterator("2", true, "6", "", "1");
-        testRingIterator("7", true, "", "1", "6");
-        testRingIterator("0", true, "1", "6", "");
-        testRingIterator("", true, "1", "6", "");
+        ArrayList<Token> ring = tmd.sortedTokens();
+        testRingIterator(ring, "2", true, "6", "", "1");
+        testRingIterator(ring, "7", true, "", "1", "6");
+        testRingIterator(ring, "0", true, "1", "6", "");
+        testRingIterator(ring, "", true, "1", "6", "");
     }
 
     @Test
     public void testRingIteratorEmptyRing()
     {
-        RING.clear();
-        testRingIterator("2", false);
+        testRingIterator(new ArrayList<Token>(), "2", false);
     }
 }


[3/5] git commit: Fix LeaveAndBootstrapTest

Posted by sl...@apache.org.
Fix LeaveAndBootstrapTest


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

Branch: refs/heads/cassandra-2.0
Commit: eeb8d1bdc6ea67f472bcbc5225cdaca5a3199650
Parents: 445c874
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Nov 19 18:05:03 2013 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Nov 19 18:22:59 2013 +0100

----------------------------------------------------------------------
 .../org/apache/cassandra/service/LeaveAndBootstrapTest.java    | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/eeb8d1bd/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 73abbe2..d385b11 100644
--- a/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
+++ b/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
@@ -107,6 +107,8 @@ public class LeaveAndBootstrapTest
                 valueFactory.leaving(Collections.singleton(endpointTokens.get(LEAVING_NODE))));
         assertTrue(tmd.isLeaving(hosts.get(LEAVING_NODE)));
 
+        PendingRangeCalculatorService.instance.blockUntilFinished();
+
         AbstractReplicationStrategy strategy;
         for (String table : Schema.instance.getNonSystemTables())
         {
@@ -232,6 +234,8 @@ public class LeaveAndBootstrapTest
         expectedEndpoints.get("Keyspace4").putAll(new BigIntegerToken("85"), makeAddrs("127.0.0.10", "127.0.0.1", "127.0.0.2", "127.0.0.3"));
         expectedEndpoints.get("Keyspace4").putAll(new BigIntegerToken("95"), makeAddrs("127.0.0.1", "127.0.0.2", "127.0.0.3"));
 
+        PendingRangeCalculatorService.instance.blockUntilFinished();
+
         for (Map.Entry<String, AbstractReplicationStrategy> tableStrategy : tableStrategyMap.entrySet())
         {
             String table = tableStrategy.getKey();
@@ -352,6 +356,8 @@ 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();


[5/5] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

Posted by sl...@apache.org.
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
	test/unit/org/apache/cassandra/db/ScrubTest.java
	test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java


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

Branch: refs/heads/cassandra-2.0
Commit: 6b1fb2ce76f72d57ad93c933d21a31f6bda817b9
Parents: 47724e6 39e3a5e
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Nov 19 18:26:38 2013 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Nov 19 18:26:38 2013 +0100

----------------------------------------------------------------------
 .../apache/cassandra/locator/TokenMetadata.java | 22 +++++++++-----
 .../unit/org/apache/cassandra/db/ScrubTest.java |  4 +++
 .../cassandra/locator/TokenMetadataTest.java    | 30 ++++++++++----------
 .../service/LeaveAndBootstrapTest.java          |  6 ++++
 4 files changed, 40 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b1fb2ce/src/java/org/apache/cassandra/locator/TokenMetadata.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b1fb2ce/test/unit/org/apache/cassandra/db/ScrubTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/ScrubTest.java
index f09aab3,68d1f5e..a83d3c6
--- a/test/unit/org/apache/cassandra/db/ScrubTest.java
+++ b/test/unit/org/apache/cassandra/db/ScrubTest.java
@@@ -57,8 -83,9 +57,9 @@@ public class ScrubTest extends SchemaLo
      public void testScrubOneRow() throws IOException, ExecutionException, InterruptedException, ConfigurationException
      {
          CompactionManager.instance.disableAutoCompaction();
 -        Table table = Table.open(TABLE);
 -        ColumnFamilyStore cfs = table.getColumnFamilyStore(CF);
 +        Keyspace keyspace = Keyspace.open(KEYSPACE);
 +        ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF);
+         cfs.clearUnsafe();
  
          List<Row> rows;
  
@@@ -78,12 -105,15 +79,13 @@@
      public void testScrubDeletedRow() throws IOException, ExecutionException, InterruptedException, ConfigurationException
      {
          CompactionManager.instance.disableAutoCompaction();
 -        Table table = Table.open(TABLE);
 -        ColumnFamilyStore cfs = table.getColumnFamilyStore(CF3);
 +        Keyspace keyspace = Keyspace.open(KEYSPACE);
 +        ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF3);
+         cfs.clearUnsafe();
  
 -        RowMutation rm;
 -        rm = new RowMutation(TABLE, ByteBufferUtil.bytes(1));
 -        ColumnFamily cf = ColumnFamily.create(TABLE, CF3);
 +        ColumnFamily cf = TreeMapBackedSortedColumns.factory.create(KEYSPACE, CF3);
          cf.delete(new DeletionInfo(0, 1)); // expired tombstone
 -        rm.add(cf);
 +        RowMutation rm = new RowMutation(KEYSPACE, ByteBufferUtil.bytes(1), cf);
          rm.applyUnsafe();
          cfs.forceBlockingFlush();
  
@@@ -95,8 -125,9 +97,9 @@@
      public void testScrubMultiRow() throws IOException, ExecutionException, InterruptedException, ConfigurationException
      {
          CompactionManager.instance.disableAutoCompaction();
 -        Table table = Table.open(TABLE);
 -        ColumnFamilyStore cfs = table.getColumnFamilyStore(CF);
 +        Keyspace keyspace = Keyspace.open(KEYSPACE);
 +        ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF);
+         cfs.clearUnsafe();
  
          List<Row> rows;
  
@@@ -113,12 -144,13 +116,13 @@@
      }
  
      @Test
 -    public void testScubOutOfOrder() throws Exception
 +    public void testScrubOutOfOrder() throws Exception
      {
 -         CompactionManager.instance.disableAutoCompaction();
 -         Table table = Table.open(TABLE);
 -         String columnFamily = "Standard3";
 -         ColumnFamilyStore cfs = table.getColumnFamilyStore(columnFamily);
 -         cfs.clearUnsafe();
 +        CompactionManager.instance.disableAutoCompaction();
 +        Keyspace keyspace = Keyspace.open(KEYSPACE);
 +        String columnFamily = "Standard3";
 +        ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(columnFamily);
++        cfs.clearUnsafe();
  
          /*
           * Code used to generate an outOfOrder sstable. The test for out-of-order key in SSTableWriter must also be commented out.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b1fb2ce/test/unit/org/apache/cassandra/locator/TokenMetadataTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b1fb2ce/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
index ef7b800,d385b11..44b3400
--- a/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
+++ b/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
@@@ -107,10 -107,12 +107,12 @@@ public class LeaveAndBootstrapTes
                  valueFactory.leaving(Collections.singleton(endpointTokens.get(LEAVING_NODE))));
          assertTrue(tmd.isLeaving(hosts.get(LEAVING_NODE)));
  
+         PendingRangeCalculatorService.instance.blockUntilFinished();
+ 
          AbstractReplicationStrategy strategy;
 -        for (String table : Schema.instance.getNonSystemTables())
 +        for (String keyspaceName : Schema.instance.getNonSystemKeyspaces())
          {
 -            strategy = getStrategy(table, tmd);
 +            strategy = getStrategy(keyspaceName, tmd);
              for (Token token : keyTokens)
              {
                  int replicationFactor = strategy.getReplicationFactor();
@@@ -232,10 -234,12 +234,12 @@@
          expectedEndpoints.get("Keyspace4").putAll(new BigIntegerToken("85"), makeAddrs("127.0.0.10", "127.0.0.1", "127.0.0.2", "127.0.0.3"));
          expectedEndpoints.get("Keyspace4").putAll(new BigIntegerToken("95"), makeAddrs("127.0.0.1", "127.0.0.2", "127.0.0.3"));
  
+         PendingRangeCalculatorService.instance.blockUntilFinished();
+ 
 -        for (Map.Entry<String, AbstractReplicationStrategy> tableStrategy : tableStrategyMap.entrySet())
 +        for (Map.Entry<String, AbstractReplicationStrategy> keyspaceStrategy : keyspaceStrategyMap.entrySet())
          {
 -            String table = tableStrategy.getKey();
 -            AbstractReplicationStrategy strategy = tableStrategy.getValue();
 +            String keyspaceName = keyspaceStrategy.getKey();
 +            AbstractReplicationStrategy strategy = keyspaceStrategy.getValue();
  
              for (int i = 0; i < keyTokens.size(); i++)
              {
@@@ -352,10 -356,12 +356,12 @@@
          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())
 +        for (Map.Entry<String, AbstractReplicationStrategy> keyspaceStrategy : keyspaceStrategyMap.entrySet())
          {
 -            String table = tableStrategy.getKey();
 -            AbstractReplicationStrategy strategy = tableStrategy.getValue();
 +            String keyspaceName = keyspaceStrategy.getKey();
 +            AbstractReplicationStrategy strategy = keyspaceStrategy.getValue();
  
              for (int i = 0; i < keyTokens.size(); i++)
              {


[4/5] git commit: Fix potential ConcurrentModificationException in tests

Posted by sl...@apache.org.
Fix potential ConcurrentModificationException in tests


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

Branch: refs/heads/cassandra-2.0
Commit: 39e3a5e039a61e649827950bb36f67617e0bd884
Parents: eeb8d1b
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Nov 19 18:13:23 2013 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Nov 19 18:23:02 2013 +0100

----------------------------------------------------------------------
 .../apache/cassandra/locator/TokenMetadata.java | 22 +++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/39e3a5e0/src/java/org/apache/cassandra/locator/TokenMetadata.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/locator/TokenMetadata.java b/src/java/org/apache/cassandra/locator/TokenMetadata.java
index ac9a1d0..5ab1b3f 100644
--- a/src/java/org/apache/cassandra/locator/TokenMetadata.java
+++ b/src/java/org/apache/cassandra/locator/TokenMetadata.java
@@ -876,13 +876,21 @@ public class TokenMetadata
     /** used by tests */
     public void clearUnsafe()
     {
-        bootstrapTokens.clear();
-        tokenToEndpointMap.clear();
-        topology.clear();
-        leavingEndpoints.clear();
-        pendingRanges.clear();
-        endpointToHostIdMap.clear();
-        invalidateCaches();
+        lock.writeLock().lock();
+        try
+        {
+            bootstrapTokens.clear();
+            tokenToEndpointMap.clear();
+            topology.clear();
+            leavingEndpoints.clear();
+            pendingRanges.clear();
+            endpointToHostIdMap.clear();
+            invalidateCaches();
+        }
+        finally
+        {
+            lock.writeLock().unlock();
+        }
     }
 
     public String toString()


[2/5] git commit: Fix ScrubTest

Posted by sl...@apache.org.
Fix ScrubTest


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

Branch: refs/heads/cassandra-2.0
Commit: 445c874faa4c38b8e5b14835b282ac2efe358a43
Parents: 0a5a766
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Nov 19 18:22:24 2013 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Nov 19 18:22:24 2013 +0100

----------------------------------------------------------------------
 test/unit/org/apache/cassandra/db/ScrubTest.java | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/445c874f/test/unit/org/apache/cassandra/db/ScrubTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/ScrubTest.java b/test/unit/org/apache/cassandra/db/ScrubTest.java
index c26939a..68d1f5e 100644
--- a/test/unit/org/apache/cassandra/db/ScrubTest.java
+++ b/test/unit/org/apache/cassandra/db/ScrubTest.java
@@ -85,6 +85,7 @@ public class ScrubTest extends SchemaLoader
         CompactionManager.instance.disableAutoCompaction();
         Table table = Table.open(TABLE);
         ColumnFamilyStore cfs = table.getColumnFamilyStore(CF);
+        cfs.clearUnsafe();
 
         List<Row> rows;
 
@@ -106,6 +107,7 @@ public class ScrubTest extends SchemaLoader
         CompactionManager.instance.disableAutoCompaction();
         Table table = Table.open(TABLE);
         ColumnFamilyStore cfs = table.getColumnFamilyStore(CF3);
+        cfs.clearUnsafe();
 
         RowMutation rm;
         rm = new RowMutation(TABLE, ByteBufferUtil.bytes(1));
@@ -125,6 +127,7 @@ public class ScrubTest extends SchemaLoader
         CompactionManager.instance.disableAutoCompaction();
         Table table = Table.open(TABLE);
         ColumnFamilyStore cfs = table.getColumnFamilyStore(CF);
+        cfs.clearUnsafe();
 
         List<Row> rows;
 
@@ -147,6 +150,7 @@ public class ScrubTest extends SchemaLoader
          Table table = Table.open(TABLE);
          String columnFamily = "Standard3";
          ColumnFamilyStore cfs = table.getColumnFamilyStore(columnFamily);
+         cfs.clearUnsafe();
 
         /*
          * Code used to generate an outOfOrder sstable. The test for out-of-order key in SSTableWriter must also be commented out.