cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aaron morton <aa...@thelastpickle.com>
Subject Re: Cannot recover SSTable with version f (current version g).
Date Fri, 03 Jun 2011 11:00:57 GMT
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
http://www.thelastpickle.com

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


Mime
View raw message