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.