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
see http://www.mail-archive.com/[email protected]/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