Cassandra should flush a keyspace after it was dropped
------------------------------------------------------

                 Key: CASSANDRA-1912
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1912
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
    Affects Versions: 0.7.0 rc 2
         Environment: any
            Reporter: Daniel Kraft


After dropping a keyspace one must not forget to flush it via
  nodetool -h host flush <dropped keyspace>

If you forget to do this and restart cassandra, the following traceback happens 
and cassandra doesn't start up again:

 INFO 20:22:56,420 Heap size: 4117889024/4137549824
 INFO 20:22:56,424 JNA not found. Native methods will be disabled.
 INFO 20:22:56,432 Loading settings from 
file:/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/conf/cassandra.yaml
 INFO 20:22:56,547 DiskAccessMode 'auto' determined to be mmap, indexAccessMode 
is mmap
 INFO 20:22:56,612 Creating new commitlog segment 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/commitlog/CommitLog-1293564176612.log
 INFO 20:22:56,666 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/system-IndexInfo-KeyCache
 INFO 20:22:56,673 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/IndexInfo-e-1
 INFO 20:22:56,698 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/system-Schema-KeyCache
 INFO 20:22:56,700 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/Schema-e-41
 INFO 20:22:56,703 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/Schema-e-43
 INFO 20:22:56,705 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/Schema-e-42
 INFO 20:22:56,727 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/system-Migrations-KeyCache
 INFO 20:22:56,728 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/Migrations-e-41
 INFO 20:22:56,730 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/Migrations-e-42
 INFO 20:22:56,734 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/system-LocationInfo-KeyCache
 INFO 20:22:56,735 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/LocationInfo-e-6
 INFO 20:22:56,739 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/LocationInfo-e-7
 INFO 20:22:56,741 Opening 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/data/system/LocationInfo-e-5
 INFO 20:22:56,746 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/system-HintsColumnFamily-KeyCache
 INFO 20:22:56,776 Loading schema version 460e882a-1291-11e0-92ff-e700f669bcfc
 WARN 20:22:56,943 Schema definitions were defined both locally and in 
cassandra.yaml. Definitions in cassandra.yaml were ignored.
 INFO 20:22:56,954 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/Keyspace1-Indexed1-KeyCache
 INFO 20:22:56,959 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/Keyspace1-Super1-KeyCache
 INFO 20:22:56,960 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/Keyspace1-Standard2-KeyCache
 INFO 20:22:56,961 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/Keyspace1-Super2-KeyCache
 INFO 20:22:56,962 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/Keyspace1-Standard1-KeyCache
 INFO 20:22:56,963 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/Keyspace1-Super3-KeyCache
 INFO 20:22:56,964 reading saved cache 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/saved_caches/Keyspace1-StandardByUUID1-KeyCache
 INFO 20:22:56,971 Replaying 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/commitlog/CommitLog-1293524239077.log,
 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/commitlog/CommitLog-1293563866498.log
 INFO 20:22:56,974 Finished reading 
/home/dk/develop/cassandra/apache-cassandra-0.7.0-rc3/STORAGE/commitlog/CommitLog-1293524239077.log
ERROR 20:22:56,975 Exception encountered during startup.
java.lang.NullPointerException
        at 
org.apache.cassandra.db.Table.createReplicationStrategy(Table.java:318)
        at org.apache.cassandra.db.Table.<init>(Table.java:258)
        at org.apache.cassandra.db.Table.open(Table.java:107)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:302)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:193)
        at 
org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:142)
        at 
org.apache.cassandra.thrift.CassandraDaemon.setup(CassandraDaemon.java:55)
        at 
org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:216)
        at 
org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:134)
Exception encountered during startup.
java.lang.NullPointerException
        at 
org.apache.cassandra.db.Table.createReplicationStrategy(Table.java:318)
        at org.apache.cassandra.db.Table.<init>(Table.java:258)
        at org.apache.cassandra.db.Table.open(Table.java:107)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:302)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:193)
        at 
org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:142)
        at 
org.apache.cassandra.thrift.CassandraDaemon.setup(CassandraDaemon.java:55)
        at 
org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:216)
        at 
org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:134)



On IRC the only hint was to move the commitlog away, start cassandra, create 
the keyspace, stop cassandra, move the commitlog back and start it again.
I'm not sure, how stable this would be in a loaded environment, so I propose 
that cassandra does the flush itself after dropping a keyspace.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to