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

Aaron Morton updated CASSANDRA-3391:
------------------------------------

    Attachment: 0001-3391-fix.patch

Use AbstractType.toString() when serialising key_validator_class to Avro.

Checked other places to CFMD.toAvro() and CFMD.fromAvro() they seemed ok. 
                
> CFM.toAvro() incorrectly serialises key_validation_class defn
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-3391
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3391
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.0
>            Reporter: Aaron Morton
>            Assignee: Aaron Morton
>            Priority: Minor
>         Attachments: 0001-3391-fix.patch
>
>
> see http://www.mail-archive.com/user@cassandra.apache.org/msg18132.html
> Repo with 
> {code}
> create keyspace Stats with placement_strategy = 
> 'org.apache.cassandra.locator.SimpleStrategy' and 
> strategy_options={replication_factor:1};
> use Stats;
> create column family Sample_Stats with 
> default_validation_class=CounterColumnType
>     and key_validation_class='CompositeType(UTF8Type,UTF8Type)'
>     and comparator='CompositeType(UTF8Type, UTF8Type)'
>     and replicate_on_write=true;
> [default@Stats] describe cluster;
> Cluster Information:
>    Snitch: org.apache.cassandra.locator.SimpleSnitch
>    Partitioner: org.apache.cassandra.dht.RandomPartitioner
>    Schema versions: 
>       1d39bbf0-fb60-11e0-0000-242d50cf1ffd: [127.0.0.1]
> {code}
> Stop and restart the node
> {code:java}
> ERROR 10:12:22,729 Exception encountered during startup
> java.lang.RuntimeException: Could not inflate CFMetaData for {"keyspace": 
> "Stats", "name": "Sample_Stats", "column_type": "Standard", 
> "comparator_type": 
> "org.apache.cassandra.db.marshal.CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)",
>  "subcomparator_type": null, "comment": "", "row_cache_size": 0.0, 
> "key_cache_size": 200000.0, "read_repair_chance": 1.0, "replicate_on_write": 
> true, "gc_grace_seconds": 864000, "default_validation_class": 
> "org.apache.cassandra.db.marshal.CounterColumnType", "key_validation_class": 
> "org.apache.cassandra.db.marshal.CompositeType", "min_compaction_threshold": 
> 4, "max_compaction_threshold": 32, "row_cache_save_period_in_seconds": 0, 
> "key_cache_save_period_in_seconds": 14400, "row_cache_keys_to_save": 
> 2147483647, "merge_shards_chance": 0.1, "id": 1000, "column_metadata": [], 
> "row_cache_provider": 
> "org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider", "key_alias": 
> null, "compaction_strategy": 
> "org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy", 
> "compaction_strategy_options": {}, "compression_options": {}}
>       at org.apache.cassandra.config.CFMetaData.fromAvro(CFMetaData.java:362)
>       at org.apache.cassandra.config.KSMetaData.fromAvro(KSMetaData.java:193)
>       at org.apache.cassandra.db.DefsTable.loadFromStorage(DefsTable.java:99)
>       at 
> org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:502)
>       at 
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:161)
>       at 
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:337)
>       at 
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:106)
> Caused by: org.apache.cassandra.config.ConfigurationException: Invalid 
> definition for comparator org.apache.cassandra.db.marshal.CompositeType.
>       at 
> org.apache.cassandra.db.marshal.TypeParser.getRawAbstractType(TypeParser.java:319)
>       at 
> org.apache.cassandra.db.marshal.TypeParser.getAbstractType(TypeParser.java:247)
>       at org.apache.cassandra.db.marshal.TypeParser.parse(TypeParser.java:83)
>       at org.apache.cassandra.db.marshal.TypeParser.parse(TypeParser.java:92)
>       at org.apache.cassandra.config.CFMetaData.fromAvro(CFMetaData.java:358)
>       ... 6 more
> Caused by: org.apache.cassandra.config.ConfigurationException: Nonsensical 
> empty parameter list for CompositeType
>       at 
> org.apache.cassandra.db.marshal.CompositeType.getInstance(CompositeType.java:67)
>       at 
> org.apache.cassandra.db.marshal.CompositeType.getInstance(CompositeType.java:61)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.apache.cassandra.db.marshal.TypeParser.getRawAbstractType(TypeParser.java:307)
>       ... 10 more
> {code}
> Will post the patch in a minute. 

--
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