You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2010/10/01 22:26:25 UTC

svn commit: r1003635 - /cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java

Author: jbellis
Date: Fri Oct  1 20:26:25 2010
New Revision: 1003635

URL: http://svn.apache.org/viewvc?rev=1003635&view=rev
Log:
scrub System keyspace before opening it
patch by jbellis; reviewed by gdusbabek for CASSANDRA-1564

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java?rev=1003635&r1=1003634&r2=1003635&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java Fri Oct  1 20:26:25 2010
@@ -93,7 +93,11 @@ public abstract class AbstractCassandraD
             }
         });
         
-        // check the system table for mismatched partitioner.
+        // check the system table to keep user from shooting self in foot by changing partitioner, cluster name, etc.
+        // we do a one-off scrub of the system table first; we can't load the list of the rest of the tables,
+        // until system table is opened.
+        for (CFMetaData cfm : DatabaseDescriptor.getTableMetaData(Table.SYSTEM_TABLE).values())
+            ColumnFamilyStore.scrubDataDirectories(Table.SYSTEM_TABLE, cfm.cfName);
         try
         {
             SystemTable.checkHealth();
@@ -115,7 +119,7 @@ public abstract class AbstractCassandraD
             System.exit(100);
         }
         
-        // clean up debris.
+        // clean up debris in the rest of the tables
         for (String table : DatabaseDescriptor.getTables()) 
         {
             for (CFMetaData cfm : DatabaseDescriptor.getTableMetaData(table).values())