Ryan McGuire created CASSANDRA-6740:
---------------------------------------

             Summary: Non-empty flush directory causes NPE on startup
                 Key: CASSANDRA-6740
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6740
             Project: Cassandra
          Issue Type: Bug
            Reporter: Ryan McGuire
            Priority: Minor


With the changes in CASSANDRA-6357, there is now the case where someone may 
want to start a fresh cluster on a machine that previously hosted one, clean 
out the directories they are familiar with (eg, data_file_directories, 
commitlog_directories) but fail to clean out the flush_directory. If they don't 
clean that out, they will see this in the logs:

{code}
INFO  [main] 2014-02-19 12:20:13,530 ColumnFamilyStore.java:281 - Initializing 
system.IndexInfo
INFO  [main] 2014-02-19 12:20:13,534 ColumnFamilyStore.java:281 - Initializing 
system.peers
INFO  [main] 2014-02-19 12:20:13,539 ColumnFamilyStore.java:281 - Initializing 
system.local
ERROR [main] 2014-02-19 12:20:13,703 CassandraDaemon.java:458 - Exception 
encountered during startup
java.lang.NullPointerException: null
        at 
org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:167) 
~[main/:na]
        at 
org.apache.cassandra.serializers.AbstractTextSerializer.deserialize(AbstractTextSerializer.java:39)
 ~[main/:na]
        at 
org.apache.cassandra.serializers.AbstractTextSerializer.deserialize(AbstractTextSerializer.java:26)
 ~[main/:na]
        at 
org.apache.cassandra.db.marshal.AbstractType.compose(AbstractType.java:66) 
~[main/:na]
        at 
org.apache.cassandra.cql3.UntypedResultSet$Row.getString(UntypedResultSet.java:150)
 ~[main/:na]
        at 
org.apache.cassandra.config.CFMetaData.fromSchemaNoTriggers(CFMetaData.java:1761)
 ~[main/:na]
        at 
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1883) 
~[main/:na]
        at 
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:320)
 ~[main/:na]
        at 
org.apache.cassandra.config.KSMetaData.fromSchema(KSMetaData.java:301) 
~[main/:na]
        at 
org.apache.cassandra.db.DefsTables.loadFromKeyspace(DefsTables.java:131) 
~[main/:na]
        at 
org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:539)
 ~[main/:na]
        at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:230) 
[main/:na]
        at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:441) 
[main/:na]
        at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:530) 
[main/:na]
{code}

I suggest a better warning message telling them it's due to the unclean flush 
dir, instead of an NPE.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to