Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-11055

C*2.1 cqlsh DESCRIBE KEYSPACE ( or TABLE ) returns 'NoneType' object has no attribute 'replace'

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 2.1.15
    • Legacy/Tools
    • Normal

    Description

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

      Attachments

        1. 11055-driver-2.7.2.patch
          1 kB
          Stefania Alborghetti
        2. data.tar.gz
          29 kB
          Stefania Alborghetti

        Activity

          People

            stefania Stefania Alborghetti
            sashley Simon Ashley
            Stefania Alborghetti
            Adam Holmberg
            Votes:
            1 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: