[ https://issues.apache.org/jira/browse/CASSANDRA-11055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Petrov updated CASSANDRA-11055: ------------------------------------ Description: C* 2.1 cqlsh DESCRIBE KEYSPACE ( or TABLE ) returns: {code} 'NoneType' object has no attribute 'replace' {code} for thrift CF's originally created in C* 1.2. Repro: 1. Create cf in cassandra-cli on C* 1.2.x (1.2.9 was used here) {code} [default@ks1] CREATE COLUMN FAMILY t1 ... 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='UTF8Type' ... AND read_repair_chance=0.1 ... AND dclocal_read_repair_chance=0.0 ... AND gc_grace=864000 ... AND min_compaction_threshold=4 ... AND max_compaction_threshold=32 ... AND replicate_on_write=true ... AND compaction_strategy='LeveledCompactionStrategy' AND compaction_strategy_options={sstable_size_in_mb: 32} ... AND caching='KEYS_ONLY' ... AND compression_options={sstable_compression:SnappyCompressor, chunk_length_kb:64}; qlsh> describe keyspace ks1; CREATE KEYSPACE ks1 WITH replication = { 'class': 'NetworkTopologyStrategy', 'datacenter1': '1' }; USE ks1; CREATE TABLE t1 ( key text, column1 text, column2 text, value text, PRIMARY KEY (key, column1, column2) ) WITH COMPACT STORAGE AND bloom_filter_fp_chance=0.100000 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={'sstable_size_in_mb': '32', 'class': 'LeveledCompactionStrategy'} AND compression={'chunk_length_kb': '64', 'sstable_compression': 'SnappyCompressor'}; cqlsh> select keyspace_name, columnfamily_name,column_aliases,key_aliases from system.schema_columnfamilies where keyspace_name= 'ks1'; keyspace_name | columnfamily_name | column_aliases | key_aliases ---------------+-------------------+----------------+------------- ks1 | t1 | [] | [] 2/ Upgrade -> C* 2.0.9 -> nodetool upgradesstables -a At this stage , DESCRIBE in cqlsh is working 3/ Upgrade -> C* 2.1.12 -> nodetool upgradesstables -a DESCRIBE now fails: cqlsh> describe table ks1.t1; 'NoneType' object has no attribute 'replace' cqlsh> describe keyspace ks1; 'NoneType' object has no attribute 'replace' {code} You can workaround by manually updating {{system.schema_columnfamilies}} {code} UPDATE system.schema_columnfamilies SET column_aliases ='["column1","column2"]' WHERE keyspace_name = 'ks1' AND columnfamily_name = 't1'; {code} Once you exit and restart cqlsh, {{DESCRIBE}} is not working as per C* 1.2 {code} cqlsh> describe keyspace ks1; CREATE KEYSPACE ks1 WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': '1'} AND durable_writes = true; CREATE TABLE ks1.t1 ( key text, column1 text, column2 text, value text, PRIMARY KEY (key, column1, column2) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (column1 ASC, column2 ASC) AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment = '' AND compaction = {'sstable_size_in_mb': '32', 'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'} AND compression = {'chunk_length_kb': '64', 'sstable_compression': 'org.apache.cassandra.io.compress.SnappyCompressor'} AND dclocal_read_repair_chance = 0.0 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.1 AND speculative_retry = '99.0PERCENTILE'; {code} was: C* 2.1 cqlsh DESCRIBE KEYSPACE ( or TABLE ) returns: 'NoneType' object has no attribute 'replace' for thrift CF's originally created in C* 1.2. Repro: 1. Create cf in cassandra-cli on C* 1.2.x (1.2.9 was used here) [default@ks1] CREATE COLUMN FAMILY t1 ... 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='UTF8Type' ... AND read_repair_chance=0.1 ... AND dclocal_read_repair_chance=0.0 ... AND gc_grace=864000 ... AND min_compaction_threshold=4 ... AND max_compaction_threshold=32 ... AND replicate_on_write=true ... AND compaction_strategy='LeveledCompactionStrategy' AND compaction_strategy_options={sstable_size_in_mb: 32} ... AND caching='KEYS_ONLY' ... AND compression_options={sstable_compression:SnappyCompressor, chunk_length_kb:64}; qlsh> describe keyspace ks1; CREATE KEYSPACE ks1 WITH replication = { 'class': 'NetworkTopologyStrategy', 'datacenter1': '1' }; USE ks1; CREATE TABLE t1 ( key text, column1 text, column2 text, value text, PRIMARY KEY (key, column1, column2) ) WITH COMPACT STORAGE AND bloom_filter_fp_chance=0.100000 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={'sstable_size_in_mb': '32', 'class': 'LeveledCompactionStrategy'} AND compression={'chunk_length_kb': '64', 'sstable_compression': 'SnappyCompressor'}; cqlsh> select keyspace_name, columnfamily_name,column_aliases,key_aliases from system.schema_columnfamilies where keyspace_name= 'ks1'; keyspace_name | columnfamily_name | column_aliases | key_aliases ---------------+-------------------+----------------+------------- ks1 | t1 | [] | [] 2/ Upgrade -> C* 2.0.9 -> nodetool upgradesstables -a At this stage , DESCRIBE in cqlsh is working 3/ Upgrade -> C* 2.1.12 -> nodetool upgradesstables -a DESCRIBE now fails: cqlsh> describe table ks1.t1; 'NoneType' object has no attribute 'replace' cqlsh> describe keyspace ks1; 'NoneType' object has no attribute 'replace' You can workaround by manually updating system.schema_columnfamilies UPDATE system.schema_columnfamilies SET column_aliases ='["column1","column2"]' WHERE keyspace_name = 'ks1' AND columnfamily_name = 't1'; Once you exit and restart cqlsh, DESCRIBE is not working as per C* 1.2 cqlsh> describe keyspace ks1; CREATE KEYSPACE ks1 WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': '1'} AND durable_writes = true; CREATE TABLE ks1.t1 ( key text, column1 text, column2 text, value text, PRIMARY KEY (key, column1, column2) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (column1 ASC, column2 ASC) AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' AND comment = '' AND compaction = {'sstable_size_in_mb': '32', 'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'} AND compression = {'chunk_length_kb': '64', 'sstable_compression': 'org.apache.cassandra.io.compress.SnappyCompressor'} AND dclocal_read_repair_chance = 0.0 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.1 AND speculative_retry = '99.0PERCENTILE'; > C*2.1 cqlsh DESCRIBE KEYSPACE ( or TABLE ) returns 'NoneType' object has no > attribute 'replace' > ----------------------------------------------------------------------------------------------- > > Key: CASSANDRA-11055 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11055 > Project: Cassandra > Issue Type: Bug > Components: Tools > Reporter: Simon Ashley > Assignee: Stefania > Labels: cqlsh > Fix For: 2.1.x > > Attachments: 11055-driver-2.7.2.patch, data.tar.gz > > > C* 2.1 cqlsh DESCRIBE KEYSPACE ( or TABLE ) returns: > {code} > 'NoneType' object has no attribute 'replace' > {code} > for thrift CF's originally created in C* 1.2. > Repro: > 1. Create cf in cassandra-cli on C* 1.2.x (1.2.9 was used here) > {code} > [default@ks1] CREATE COLUMN FAMILY t1 > ... 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='UTF8Type' > ... AND read_repair_chance=0.1 > ... AND dclocal_read_repair_chance=0.0 > ... AND gc_grace=864000 > ... AND min_compaction_threshold=4 > ... AND max_compaction_threshold=32 > ... AND replicate_on_write=true > ... AND compaction_strategy='LeveledCompactionStrategy' AND > compaction_strategy_options={sstable_size_in_mb: 32} > ... AND caching='KEYS_ONLY' > ... AND compression_options={sstable_compression:SnappyCompressor, > chunk_length_kb:64}; > qlsh> describe keyspace ks1; > CREATE KEYSPACE ks1 WITH replication = { > 'class': 'NetworkTopologyStrategy', > 'datacenter1': '1' > }; > USE ks1; > CREATE TABLE t1 ( > key text, > column1 text, > column2 text, > value text, > PRIMARY KEY (key, column1, column2) > ) WITH COMPACT STORAGE AND > bloom_filter_fp_chance=0.100000 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={'sstable_size_in_mb': '32', 'class': > 'LeveledCompactionStrategy'} AND > compression={'chunk_length_kb': '64', 'sstable_compression': > 'SnappyCompressor'}; > cqlsh> select keyspace_name, columnfamily_name,column_aliases,key_aliases > from system.schema_columnfamilies where keyspace_name= 'ks1'; > keyspace_name | columnfamily_name | column_aliases | key_aliases > ---------------+-------------------+----------------+------------- > ks1 | t1 | [] | [] > 2/ Upgrade -> C* 2.0.9 -> nodetool upgradesstables -a > At this stage , DESCRIBE in cqlsh is working > 3/ Upgrade -> C* 2.1.12 -> nodetool upgradesstables -a > DESCRIBE now fails: > cqlsh> describe table ks1.t1; > 'NoneType' object has no attribute 'replace' > cqlsh> describe keyspace ks1; > 'NoneType' object has no attribute 'replace' > {code} > You can workaround by manually updating {{system.schema_columnfamilies}} > {code} > UPDATE system.schema_columnfamilies SET column_aliases > ='["column1","column2"]' WHERE keyspace_name = 'ks1' AND columnfamily_name = > 't1'; > {code} > Once you exit and restart cqlsh, {{DESCRIBE}} is not working as per C* 1.2 > {code} > cqlsh> describe keyspace ks1; > CREATE KEYSPACE ks1 WITH replication = {'class': 'NetworkTopologyStrategy', > 'datacenter1': '1'} AND durable_writes = true; > CREATE TABLE ks1.t1 ( > key text, > column1 text, > column2 text, > value text, > PRIMARY KEY (key, column1, column2) > ) WITH COMPACT STORAGE > AND CLUSTERING ORDER BY (column1 ASC, column2 ASC) > AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' > AND comment = '' > AND compaction = {'sstable_size_in_mb': '32', 'class': > 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'} > AND compression = {'chunk_length_kb': '64', 'sstable_compression': > 'org.apache.cassandra.io.compress.SnappyCompressor'} > AND dclocal_read_repair_chance = 0.0 > AND default_time_to_live = 0 > AND gc_grace_seconds = 864000 > AND max_index_interval = 2048 > AND memtable_flush_period_in_ms = 0 > AND min_index_interval = 128 > AND read_repair_chance = 0.1 > AND speculative_retry = '99.0PERCENTILE'; > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)