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

Brandon Williams reassigned CASSANDRA-6598:
-------------------------------------------

    Assignee: Brandon Williams

> upgradesstables does not upgrade indexes causing startup error.
> ---------------------------------------------------------------
>
>                 Key: CASSANDRA-6598
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6598
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Ryan McGuire
>            Assignee: Brandon Williams
>
> Upgrading a cluster from 1.1.12 -> 1.2.13 -> 2.0 HEAD fails due to 
> upgradesstables not upgrading the index files.
> To reproduce:
> {code}
> # Make sure ccm has all the versions we need:
> ccm create -v git:cassandra-2.0 test
> ccm remove 
> ccm create -v git:cassandra-1.2.13 test
> ccm remove
> # Create a 1.1.12 cluster:
> ccm create -v git:cassandra-1.1.12 test
> # Set cluster partitioner:
> perl -p -i -e 's/partitioner: null/partitioner: RandomPartitioner/gi' 
> ~/.ccm/test/cluster.conf
> ccm populate -n 1
> ccm start
> ccm node1 stress -- --operation=INSERT --family-type=Standard 
> --num-keys=10000 --create-index=KEYS --compression=SnappyCompressor 
> --compaction-strategy=LeveledCompactionStrategy
> ccm flush
> ccm node1 drain
> ccm status
> # Wait until node1 shows DOWN.
> # Set cluster version:
> perl -p -i -e 's/git_cassandra-1.1.12/git_cassandra-1.2.13/gi' 
> ~/.ccm/test/cluster.conf
> # Upgrade node1:
> ccm node1 updateconf
> ccm node1 start
> # Upgrade sstables:
> ~/.ccm/test/node1/bin/nodetool -p 7100 upgradesstables
> ls ~/.ccm/test/node1/data/Keyspace1/Standard1/
> # Note the versions on files. Data has been upgraded to version *ic* but 
> indexes are left on version *hf*.
> # Upgrade to 2.0:
> ccm flush
> ccm node1 drain
> ccm status
> # Wait until node1 shows DOWN.
> # Set cluster version:
> perl -p -i -e 's/git_cassandra-1.2.13/git_cassandra-2.0/gi' 
> ~/.ccm/test/cluster.conf
> ccm node1 updateconf
> ccm node1 start
> {code}
> On this last upgrade attempt, cassandra 2.0 complains that the version for 
> the indexes is incorrect:
> {code}
> java.lang.RuntimeException: Can't open incompatible SSTable! Current version 
> jb, found file: 
> /home/ryan/.ccm/test/node1/data/Keyspace1/Standard1/Keyspace1-Standard1.Idx1-hf-1
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:411)
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:393)
>         at 
> org.apache.cassandra.db.index.AbstractSimplePerColumnSecondaryIndex.init(AbstractSimplePerColumnSecondaryIndex.java:52)
>         at 
> org.apache.cassandra.db.index.SecondaryIndexManager.addIndexedColumn(SecondaryIndexManager.java:274)
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:279)
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:416)
>         at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:388)
>         at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:309)
>         at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:266)
>         at org.apache.cassandra.db.Keyspace.open(Keyspace.java:110)
>         at org.apache.cassandra.db.Keyspace.open(Keyspace.java:88)
>         at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:273)
>         at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:462)
>         at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:549)
> {code}
> The same test can be done starting from 1.2 upgrading to 2.0. The index files 
> do not upgrade in this scenario either, however, there is not the same error, 
> possibly because 2.0 is tolerant of version 1.2 indexes?



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to