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())