Ken Hancock created CASSANDRA-14414:
---------------------------------------

             Summary: Errors in Supercolumn support in 2.0 upgrade
                 Key: CASSANDRA-14414
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14414
             Project: Cassandra
          Issue Type: Bug
            Reporter: Ken Hancock


In upgrading from 1.2.18 to 2.0.17, the following exceptions started showing in 
cassandra log files when the 2.0.17 node is chosen as the coordinator.  CL=ALL 
reads will fail as a result.

The following ccm script will create a 3-node cassandra cluster and upgrade the 
3rd node to cassandra 2.0.17

{code}
ccm create -n3 -v1.2.17 test
ccm start
ccm node1 cli -v -x "create keyspace test with 
placement_strategy='org.apache.cassandra.locator.SimpleStrategy' and 
strategy_options={replication_factor:3}"
ccm node1 cli -v -x "use test;
        create column family super with column_type = 'Super' and 
key_validation_class='IntegerType' and comparator = 'IntegerType' and 
subcomparator = 'IntegerType' and default_validation_class = 'AsciiType'"
ccm node1 cli -v -x "use test;
        create column family shadow with column_type = 'Super' and 
key_validation_class='IntegerType' and comparator = 'IntegerType' and 
subcomparator = 'IntegerType' and default_validation_class = 'AsciiType'"

ccm node1 cli -v -x "use test;
        set super[1][1][1]='1-1-1';
        set super[1][1][2]='1-1-2';
        set super[1][2][1]='1-2-1';
        set super[1][2][2]='1-2-2';
        set super[2][1][1]='2-1-1';
        set super[2][1][2]='2-1-2';
        set super[2][2][1]='2-2-1';
        set super[2][2][2]='2-2-2';
        set super[3][1][1]='3-1-1';
        set super[3][1][2]='3-1-2';
        "
ccm flush
ccm node3 stop
ccm node3 setdir -v2.0.17
ccm node3 start
ccm node3 nodetool upgradesstables
{code}

The following python uses pycassa to exercise the range_slice Thrift API:

{code}
import pycassa
from pycassa.pool import ConnectionPool
from pycassa.columnfamily import ColumnFamily
from pycassa import ConsistencyLevel
pool = ConnectionPool('test', server_list=['127.0.0.3:9160'], max_retries=0)
super = ColumnFamily(pool, 'super')

print "fails with ClassCastException"
super.get(1, columns=[1,2], read_consistency_level=ConsistencyLevel.ONE)

print "fails with RuntimeException: Cannot convert filter to old super column 
format...""
super.get(1, column_start=2, column_finish=3, 
read_consistency_level=ConsistencyLevel.ONE)
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to