diff --git a/CHANGES.txt b/CHANGES.txt index 87c9b59b19..fb2697755e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -4,6 +4,7 @@ in clusters with multiple seeds (CASSANDRA-150) * fix NPE in get_range_slice when no data is found (CASSANDRA-578) * fix potential NPE in hinted handoff (CASSANDRA-585) + * fix cleanup of local "system" keyspace (CASSANDRA-576) 0.5.0 beta diff --git a/src/java/org/apache/cassandra/db/Table.java b/src/java/org/apache/cassandra/db/Table.java index 7eada62f8b..23231e67f7 100644 --- a/src/java/org/apache/cassandra/db/Table.java +++ b/src/java/org/apache/cassandra/db/Table.java @@ -248,6 +248,9 @@ public class Table */ public void forceCleanup() { + if (table_.equals("system")) + throw new RuntimeException("Cleanup of the system table is neither necessary nor wise"); + Set columnFamilies = tableMetadata_.getColumnFamilies(); for ( String columnFamily : columnFamilies ) { diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 445e8a7744..1d1f082427 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -586,8 +586,10 @@ public final class StorageService implements IEndPointStateChangeSubscriber, Sto public void forceTableCleanup() throws IOException { List tables = DatabaseDescriptor.getTables(); - for ( String tName : tables ) + for (String tName : tables) { + if (tName.equals("system")) + continue; Table table = Table.open(tName); table.forceCleanup(); }