Cannot restart server after making schema changes to composite CFs
------------------------------------------------------------------

                 Key: CASSANDRA-3819
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3819
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.0.7, 1.0.6
         Environment: Ubuntu 11.0.4
            Reporter: Huy Le


This JIRA is for issue discussed in this thread 
http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/Cannot-start-cassandra-node-anymore-tp7150978p7150978.html.

We were using version 1.0.6.  We added new keyspace using built-in composite 
data type.  We then decided to change the schema, specifically just the CF 
names, so we dropped the keyspace.  We recreated the key space with different 
CF names in the key space.

There were a lot of uncommitted data in commit logs.  Data dated back before 
the original key space was created.  When we restarted the server, the server 
failed when it read it the commit logs, and the server stopped.  Here is 
snippet of the stack trace:

{code}
-3881-11e1-ac7f-12313d23ead3:true:4@1326223353559001,])}
DEBUG 18:02:01,057 Reading mutation at 66336992
DEBUG 18:02:01,058 replaying mutation for 
Springpad.696d6167652d7363616c65722d6d657461: 
{ColumnFamily(CassandraOrderedQueue 
[0,eb321490-3881-11e1-ac7f-12313d23ead3:true:4@1326223353560000,])}
DEBUG 18:02:01,058 Reading mutation at 66337118
DEBUG 18:02:01,058 replaying mutation for 
Springpad.737072696e674d6f64656c44617461626173652d6d657461: 
{ColumnFamily(CassandraOrderedQueue 
[0,80dc0cd0-3bc0-11e1-83a8-12313d23ead3:false:8@1326223386668000,])}
DEBUG 18:02:01,058 Reading mutation at 66337255
DEBUG 18:02:01,058 replaying mutation for 
system.38363233616337302d336263302d313165312d303030302d323366623834646463346633:
 {ColumnFamily(Schema 
[Avro/Schema:false:2725@1326223386807,Backups:false:431@1326223386807,Springpad:false:10814@1326223386807,SpringpadGraph:false:2931@1326223386807,])}
DEBUG 18:02:01,059 Reading mutation at 66354352
DEBUG 18:02:01,059 replaying mutation for system.4d6967726174696f6e73204b6579: 
{ColumnFamily(Migrations 
[8623ac70-3bc0-11e1-0000-23fb84ddc4f3:false:23728@1326223386812,])}
DEBUG 18:02:01,059 Reading mutation at 66378184
DEBUG 18:02:01,059 replaying mutation for system.4c617374204d6967726174696f6e: 
{ColumnFamily(Schema [Last Migration:false:16@1326223386812,])}
DEBUG 18:02:01,059 Reading mutation at 66378302
 INFO 18:02:01,060 Finished reading 
/mnt/cassandra/commitlog/CommitLog-1325861435420.log
ERROR 18:02:01,061 Exception encountered during startup
java.lang.IllegalArgumentException
        at java.nio.Buffer.limit(Buffer.java:247)
        at 
org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:57)
        at 
org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:66)
        at 
org.apache.cassandra.db.marshal.AbstractCompositeType.getString(AbstractCompositeType.java:129)
        at org.apache.cassandra.db.Column.getString(Column.java:250)
        at 
org.apache.cassandra.db.marshal.AbstractType.getColumnsString(AbstractType.java:137)
        at org.apache.cassandra.db.ColumnFamily.toString(ColumnFamily.java:280)
        at org.apache.commons.lang.ObjectUtils.toString(ObjectUtils.java:241)
        at org.apache.commons.lang.StringUtils.join(StringUtils.java:3073)
        at org.apache.commons.lang.StringUtils.join(StringUtils.java:3133)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:301)
        at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:172)
        at 
org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:215)
        at 
org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:356)
        at 
org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:107)
Exception encountered during startup: null 
{code}

Sample original CF schema:
{code}
create column family InEdges
  with column_type = 'Standard'
  and comparator = 
'CompositeType(org.apache.cassandra.db.marshal.LongType,org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)'
  and default_validation_class = 'BytesType'
  and key_validation_class = 'UTF8Type'
  and rows_cached = 0.0
  and row_cache_save_period = 0
  and row_cache_keys_to_save = 0
  and keys_cached = 0.0
  and key_cache_save_period = 0
  and read_repair_chance = 0.0
  and gc_grace = 0
  and min_compaction_threshold = 4
  and max_compaction_threshold = 32
  and replicate_on_write = true
  and row_cache_provider = 'ConcurrentLinkedHashCacheProvider'
  and compaction_strategy = 
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy';
{code}

And the updated schema (just CF name change):
{code}
create column family NewInEdges
  with column_type = 'Standard'
  and comparator = 
'CompositeType(org.apache.cassandra.db.marshal.LongType,org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)'
  and default_validation_class = 'BytesType'
  and key_validation_class = 'UTF8Type'
  and rows_cached = 0.0
  and row_cache_save_period = 0
  and row_cache_keys_to_save = 0
  and keys_cached = 0.0
  and key_cache_save_period = 0
  and read_repair_chance = 0.0
  and gc_grace = 0
  and min_compaction_threshold = 4
  and max_compaction_threshold = 32
  and replicate_on_write = true
  and row_cache_provider = 'ConcurrentLinkedHashCacheProvider'
  and compaction_strategy = 
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy';
{code}

This issue happens every time composite type is used and workaround can be 
found at 
(http://cassandra-user-incubator-apache-org.3065146.n2.nabble.com/Cannot-start-cassandra-node-anymore-tp7150978p7226863.html).




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to