Could you please create a bug report for this in Jira https://issues.apache.org/jira/browse/CASSANDRA

Please check the data directory on the node that encountered the error and include any files names that have "tmp" in them. 

Can you also check for log messages on the node you decommissioned at the INFO level that start with "Stream context metadata".

it looks like the file version from the old files on the decommissioning node are included in the stream header and it's used to create the new temp file on the node that got this error. So when the it tries to build the other SSTable files from the new data it thinks it's an old data file, even though it's a v0.8 file. v0.8 can read v0.7 data files, but it would not expected to see a new v0.7 data file.  

If this is the case the only work around I can think of would be to nodetool scrub the node before starting decommission as this would write new data files. It's a bit late here so I may have missed something.  
 
Thanks for reporting it. 

-----------------
Aaron Morton
Freelance Cassandra Developer
@aaronmorton

On 3 Jun 2011, at 22:06, Dikang Gu wrote:

Hi guys,

I upgrade the 4-nodes cassandra 0.7.4 cluster to 0.8.0.  Then, I do the bin/nodetool decommission on one node, the decommission hangs there and I got the following exceptions on others 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)

Do you have any ideas about this?

Thanks.

-- 
Dikang Gu
0086 - 18611140205