[ https://issues.apache.org/jira/browse/CASSANDRA-2739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13070633#comment-13070633 ]
Sylvain Lebresne commented on CASSANDRA-2739: --------------------------------------------- bq. Are the steps above correct? No. The current limitation is that when upgrading from 0.7 to 0.8, you cannot do something related to streaming (bootstrap, repair, decommission) with a mixed 0.7-0.8 cluster (more precisely, you could do some of those if the right node has the right version, but you're never guaranteed it will work) and until all sstables on the new 0.8 node have been converted to the new format. The correct steps are: # upgrade all node to 0.8. The all here doesn't mean all at once, it can be a rolling upgrade, but it means that streaming operation during that step may fail. # run 'nodetool scrub' on all the node after the upgrade. The definition for all is the same than previously. After those step, you should not get the error message anymore (otherwise, it is an unknown bug). We will try to make it so that the second stop (the scrub part) is not necessary in the future but it is necessary for now. > Cannot recover SSTable with version f (current version g) during the node > decommission. > --------------------------------------------------------------------------------------- > > Key: CASSANDRA-2739 > URL: https://issues.apache.org/jira/browse/CASSANDRA-2739 > Project: Cassandra > Issue Type: Bug > Components: Core > Affects Versions: 0.8.0 > Environment: centos, cassandra 0.7.4 upgrade to 0.8.0-final. > Reporter: Dikang Gu > Labels: decommission, version > > I upgrade the 4-nodes cassandra 0.7.4 cluster to 0.8.0-final. Then, I do the > bin/nodetool decommission on one node, the decommission hangs there and I got > the following errors on other nodes. > ERROR [Thread-55] 2011-06-03 18:02:03,500 AbstractCassandraDaemon.java (line > 113) Fatal exception in thread Thread[Thread-55,5,main] > java.lang.RuntimeException: Cannot recover SSTable with version f (current > version g). > at > org.apache.cassandra.io.sstable.SSTableWriter.createBuilder(SSTableWriter.java:240) > at > org.apache.cassandra.db.CompactionManager.submitSSTableBuild(CompactionManager.java:1088) > at > org.apache.cassandra.streaming.StreamInSession.finished(StreamInSession.java:108) > at > org.apache.cassandra.streaming.IncomingStreamReader.readFile(IncomingStreamReader.java:104) > at > org.apache.cassandra.streaming.IncomingStreamReader.read(IncomingStreamReader.java:61) > at > org.apache.cassandra.net.IncomingTcpConnection.stream(IncomingTcpConnection.java:155) > at > org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:93) > ERROR [Thread-56] 2011-06-03 18:02:04,285 AbstractCassandraDaemon.java (line > 113) Fatal exception in thread Thread[Thread-56,5,main] > java.lang.RuntimeException: Cannot recover SSTable with version f (current > version g). > at > org.apache.cassandra.io.sstable.SSTableWriter.createBuilder(SSTableWriter.java:240) > at > org.apache.cassandra.db.CompactionManager.submitSSTableBuild(CompactionManager.java:1088) > at > org.apache.cassandra.streaming.StreamInSession.finished(StreamInSession.java:108) > at > org.apache.cassandra.streaming.IncomingStreamReader.readFile(IncomingStreamReader.java:104) > at > org.apache.cassandra.streaming.IncomingStreamReader.read(IncomingStreamReader.java:61) > at > org.apache.cassandra.net.IncomingTcpConnection.stream(IncomingTcpConnection.java:155) > at > org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:93) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira