[ 
https://issues.apache.org/jira/browse/CASSANDRA-6161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonas Wu updated CASSANDRA-6161:
--------------------------------

    Description: 
We encounter this problem when upgrade from 1.2.6 to 1.2.9 .  For our careless 
we set the same initial_token on two nodes among the cluster, and cancel the 
process immediately at startup stage. But after fix and start again, cassandra 
fault at startup stage on this two nodes.
{quote}
ERROR 08:37:52,194 Exception encountered during startup
java.lang.AssertionError
        at org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:162)
        at 
org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1526)
        at 
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
        at 
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
        at 
org.apache.cassandra.config.KSMetaData.fromSchema(KSMetaData.java:287)
        at org.apache.cassandra.db.DefsTable.loadFromTable(DefsTable.java:154)
        at 
org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:563)
        at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254)
        at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447)
        at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
java.lang.AssertionError
        at org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:162)
        at 
org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1526)
        at 
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
        at 
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
        at 
org.apache.cassandra.config.KSMetaData.fromSchema(KSMetaData.java:287)
        at org.apache.cassandra.db.DefsTable.loadFromTable(DefsTable.java:154)
        at 
org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:563)
        at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254)
        at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447)
        at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
Exception encountered during startup: null
{quote}

if we delete data/system directory and start again, both starting normally and 
begin to sync. But after that operation, all the CFs can not be found from cli 
interface on these two node, also we test with client api pycassa(via thrift 
api) and get 'column family not found' error for all CFs.
Also we try to resetlocalschema via nodetool, but get the following error
{quote}
ERROR 08:45:56,122 Exception in thread Thread[InternalResponseStage:12,5,main]
org.apache.cassandra.db.marshal.MarshalException: unable to coerce 'column2' to 
version 1 UUID
        at 
org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:239)
        at 
org.apache.cassandra.config.ColumnDefinition.fromSchema(ColumnDefinition.java:230)
        at 
org.apache.cassandra.config.CFMetaData.addColumnDefinitionSchema(CFMetaData.java:1509)
        at 
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
        at 
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
        at 
org.apache.cassandra.db.DefsTable.mergeColumnFamilies(DefsTable.java:444)
        at org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:356)
        at 
org.apache.cassandra.service.MigrationTask$1.response(MigrationTask.java:66)
        at 
org.apache.cassandra.net.ResponseVerbHandler.doVerb(ResponseVerbHandler.java:47)
        at 
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: java.text.ParseException: Unable to parse the date: column2
        at 
org.apache.commons.lang.time.DateUtils.parseDateWithLeniency(DateUtils.java:359)
        at org.apache.commons.lang.time.DateUtils.parseDate(DateUtils.java:285)
        at 
org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:234)
        ... 12 more
{quote}

The third node still function correctly and can show  table from cli and cqlsh. 
The following is one of our CF with composite column schema example.
{panel:title=cqlsh}
CREATE TABLE "Foo" (
  key uuid,
  column1 text,
  column2 text,
  title text,
  "num:click" varint,   
  PRIMARY KEY (key, column1, column2)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction=\{'class': 'SizeTieredCompactionStrategy'\} AND
  compression=\{'sstable_compression': 'SnappyCompressor'\};
{panel}
{panel:title=cli}
create column family Foo
  with column_type = 'Standard'
  and comparator = 
'CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)'
  and default_validation_class = 'UTF8Type'
  and key_validation_class = 'UUIDType'
  and read_repair_chance = 0.1
  and dclocal_read_repair_chance = 0.0
  and populate_io_cache_on_flush = false
  and gc_grace = 864000
  and min_compaction_threshold = 4
  and max_compaction_threshold = 32
  and replicate_on_write = true
  and compaction_strategy = 
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
  and caching = 'KEYS_ONLY'
  and column_metadata = [
    \{column_name : 'title',
    validation_class : UTF8Type},
    {column_name : 'num:click',
    validation_class : IntegerType\}
  ] and compression_options = \{'sstable_compression' : 
'org.apache.cassandra.io.compress.SnappyCompressor'\};
{panel}

  was:
We face this problem when upgrade from 1.2.6 to 1.2.9 .  For our careless we 
set the same initial_token on two nodes among the cluster, and cancel the 
process immediately at startup stage. But after fix and start again, cassandra 
fault at startup stage on this two nodes.
{quote}
ERROR 08:37:52,194 Exception encountered during startup
java.lang.AssertionError
        at org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:162)
        at 
org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1526)
        at 
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
        at 
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
        at 
org.apache.cassandra.config.KSMetaData.fromSchema(KSMetaData.java:287)
        at org.apache.cassandra.db.DefsTable.loadFromTable(DefsTable.java:154)
        at 
org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:563)
        at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254)
        at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447)
        at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
java.lang.AssertionError
        at org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:162)
        at 
org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1526)
        at 
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
        at 
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
        at 
org.apache.cassandra.config.KSMetaData.fromSchema(KSMetaData.java:287)
        at org.apache.cassandra.db.DefsTable.loadFromTable(DefsTable.java:154)
        at 
org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:563)
        at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254)
        at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447)
        at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
Exception encountered during startup: null
{quote}

if we delete data/system directory and start again, both starting normally and 
begin to sync. But after that operation, all the CFs can not be found from cli 
interface on these two node, also we test with client api pycassa(via thrift 
api) and get 'column family not found' error for all CFs.
Also we try to resetlocalschema via nodetool, but get the following error
{quote}
ERROR 08:45:56,122 Exception in thread Thread[InternalResponseStage:12,5,main]
org.apache.cassandra.db.marshal.MarshalException: unable to coerce 'column2' to 
version 1 UUID
        at 
org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:239)
        at 
org.apache.cassandra.config.ColumnDefinition.fromSchema(ColumnDefinition.java:230)
        at 
org.apache.cassandra.config.CFMetaData.addColumnDefinitionSchema(CFMetaData.java:1509)
        at 
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
        at 
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
        at 
org.apache.cassandra.db.DefsTable.mergeColumnFamilies(DefsTable.java:444)
        at org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:356)
        at 
org.apache.cassandra.service.MigrationTask$1.response(MigrationTask.java:66)
        at 
org.apache.cassandra.net.ResponseVerbHandler.doVerb(ResponseVerbHandler.java:47)
        at 
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)
Caused by: java.text.ParseException: Unable to parse the date: column2
        at 
org.apache.commons.lang.time.DateUtils.parseDateWithLeniency(DateUtils.java:359)
        at org.apache.commons.lang.time.DateUtils.parseDate(DateUtils.java:285)
        at 
org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:234)
        ... 12 more
{quote}

The third node still function correctly and can show  table from cli and cqlsh. 
The following is one of our CF with composite column schema example.
{panel:title=cqlsh}
CREATE TABLE "Foo" (
  key uuid,
  column1 text,
  column2 text,
  title text,
  "num:click" varint,   
  PRIMARY KEY (key, column1, column2)
) WITH COMPACT STORAGE AND
  bloom_filter_fp_chance=0.010000 AND
  caching='KEYS_ONLY' AND
  comment='' AND
  dclocal_read_repair_chance=0.000000 AND
  gc_grace_seconds=864000 AND
  read_repair_chance=0.100000 AND
  replicate_on_write='true' AND
  populate_io_cache_on_flush='false' AND
  compaction=\{'class': 'SizeTieredCompactionStrategy'\} AND
  compression=\{'sstable_compression': 'SnappyCompressor'\};
{panel}
{panel:title=cli}
create column family Foo
  with column_type = 'Standard'
  and comparator = 
'CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)'
  and default_validation_class = 'UTF8Type'
  and key_validation_class = 'UUIDType'
  and read_repair_chance = 0.1
  and dclocal_read_repair_chance = 0.0
  and populate_io_cache_on_flush = false
  and gc_grace = 864000
  and min_compaction_threshold = 4
  and max_compaction_threshold = 32
  and replicate_on_write = true
  and compaction_strategy = 
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
  and caching = 'KEYS_ONLY'
  and column_metadata = [
    \{column_name : 'title',
    validation_class : UTF8Type},
    {column_name : 'num:click',
    validation_class : IntegerType\}
  ] and compression_options = \{'sstable_compression' : 
'org.apache.cassandra.io.compress.SnappyCompressor'\};
{panel}


> CF with composite columns can not be accessed from thrift (include cli 
> interface) when upgrade to 1.2.9
> -------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-6161
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6161
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core, Tools
>         Environment: ubuntu x64 12.04 LTS, 3 nodes cluster
>            Reporter: Jonas Wu
>            Priority: Critical
>
> We encounter this problem when upgrade from 1.2.6 to 1.2.9 .  For our 
> careless we set the same initial_token on two nodes among the cluster, and 
> cancel the process immediately at startup stage. But after fix and start 
> again, cassandra fault at startup stage on this two nodes.
> {quote}
> ERROR 08:37:52,194 Exception encountered during startup
> java.lang.AssertionError
>         at 
> org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:162)
>         at 
> org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1526)
>         at 
> org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
>         at 
> org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
>         at 
> org.apache.cassandra.config.KSMetaData.fromSchema(KSMetaData.java:287)
>         at org.apache.cassandra.db.DefsTable.loadFromTable(DefsTable.java:154)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:563)
>         at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254)
>         at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447)
>         at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
> java.lang.AssertionError
>         at 
> org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:162)
>         at 
> org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1526)
>         at 
> org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
>         at 
> org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
>         at 
> org.apache.cassandra.config.KSMetaData.fromSchema(KSMetaData.java:287)
>         at org.apache.cassandra.db.DefsTable.loadFromTable(DefsTable.java:154)
>         at 
> org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:563)
>         at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:254)
>         at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447)
>         at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
> Exception encountered during startup: null
> {quote}
> if we delete data/system directory and start again, both starting normally 
> and begin to sync. But after that operation, all the CFs can not be found 
> from cli interface on these two node, also we test with client api 
> pycassa(via thrift api) and get 'column family not found' error for all CFs.
> Also we try to resetlocalschema via nodetool, but get the following error
> {quote}
> ERROR 08:45:56,122 Exception in thread Thread[InternalResponseStage:12,5,main]
> org.apache.cassandra.db.marshal.MarshalException: unable to coerce 'column2' 
> to version 1 UUID
>         at 
> org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:239)
>         at 
> org.apache.cassandra.config.ColumnDefinition.fromSchema(ColumnDefinition.java:230)
>         at 
> org.apache.cassandra.config.CFMetaData.addColumnDefinitionSchema(CFMetaData.java:1509)
>         at 
> org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1441)
>         at 
> org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:306)
>         at 
> org.apache.cassandra.db.DefsTable.mergeColumnFamilies(DefsTable.java:444)
>         at org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:356)
>         at 
> org.apache.cassandra.service.MigrationTask$1.response(MigrationTask.java:66)
>         at 
> org.apache.cassandra.net.ResponseVerbHandler.doVerb(ResponseVerbHandler.java:47)
>         at 
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:724)
> Caused by: java.text.ParseException: Unable to parse the date: column2
>         at 
> org.apache.commons.lang.time.DateUtils.parseDateWithLeniency(DateUtils.java:359)
>         at 
> org.apache.commons.lang.time.DateUtils.parseDate(DateUtils.java:285)
>         at 
> org.apache.cassandra.db.marshal.UUIDType.fromString(UUIDType.java:234)
>         ... 12 more
> {quote}
> The third node still function correctly and can show  table from cli and 
> cqlsh. The following is one of our CF with composite column schema example.
> {panel:title=cqlsh}
> CREATE TABLE "Foo" (
>   key uuid,
>   column1 text,
>   column2 text,
>   title text,
>   "num:click" varint,   
>   PRIMARY KEY (key, column1, column2)
> ) WITH COMPACT STORAGE AND
>   bloom_filter_fp_chance=0.010000 AND
>   caching='KEYS_ONLY' AND
>   comment='' AND
>   dclocal_read_repair_chance=0.000000 AND
>   gc_grace_seconds=864000 AND
>   read_repair_chance=0.100000 AND
>   replicate_on_write='true' AND
>   populate_io_cache_on_flush='false' AND
>   compaction=\{'class': 'SizeTieredCompactionStrategy'\} AND
>   compression=\{'sstable_compression': 'SnappyCompressor'\};
> {panel}
> {panel:title=cli}
> create column family Foo
>   with column_type = 'Standard'
>   and comparator = 
> 'CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)'
>   and default_validation_class = 'UTF8Type'
>   and key_validation_class = 'UUIDType'
>   and read_repair_chance = 0.1
>   and dclocal_read_repair_chance = 0.0
>   and populate_io_cache_on_flush = false
>   and gc_grace = 864000
>   and min_compaction_threshold = 4
>   and max_compaction_threshold = 32
>   and replicate_on_write = true
>   and compaction_strategy = 
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
>   and caching = 'KEYS_ONLY'
>   and column_metadata = [
>     \{column_name : 'title',
>     validation_class : UTF8Type},
>     {column_name : 'num:click',
>     validation_class : IntegerType\}
>   ] and compression_options = \{'sstable_compression' : 
> 'org.apache.cassandra.io.compress.SnappyCompressor'\};
> {panel}



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to