[
https://issues.apache.org/jira/browse/CASSANDRA-3065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonathan Ellis resolved CASSANDRA-3065.
---------------------------------------
Resolution: Cannot Reproduce
Assignee: (was: Sylvain Lebresne)
Unfortunately a corrupt data file doesn't help us a whole lot, especially
without the index (which gives us redundant row size information in case the
data file's is hosed, which this is).
I'd recommend taking regular snapshots so that if you run into more problems
you can see if it reproduces on a relatively recent dataset.
It's also worth trying out compression in 1.0, which as part of the block
format adds checksumming so Cassandra can easily recognize corruption at that
level.
> Major file corruption after running nodetool cleanup
> ----------------------------------------------------
>
> Key: CASSANDRA-3065
> URL: https://issues.apache.org/jira/browse/CASSANDRA-3065
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.8.3
> Reporter: Benjamin Schrauwen
>
> After running nodetool cleanup on two of the nodes in my 4 node cluster,
> almost all SSTables on those those machine got corrupted. I am not able to
> read them anymore with sstable2json, and the cassandra daemon is repetitively
> throwing:
> ERROR [ReadStage:11] 2011-08-20 04:44:46,846 AbstractCassandraDaemon.java
> (line 139) Fatal exception in thread Thread[ReadStage:11,5,main]
> java.lang.RuntimeException: java.lang.IndexOutOfBoundsException
> at
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:34)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.IndexOutOfBoundsException
> at java.nio.Buffer.checkIndex(Buffer.java:514)
> at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:209)
> at
> org.apache.cassandra.io.util.MappedFileDataInput.read(MappedFileDataInput.java:104)
> at java.io.InputStream.read(InputStream.java:154)
> at
> org.apache.cassandra.io.util.AbstractDataInput.readInt(AbstractDataInput.java:196)
> at
> org.apache.cassandra.io.sstable.IndexHelper.skipIndex(IndexHelper.java:61)
> at
> org.apache.cassandra.db.columniterator.SimpleSliceReader.<init>(SimpleSliceReader.java:58)
> at
> org.apache.cassandra.db.columniterator.SSTableSliceIterator.createReader(SSTableSliceIterator.java:91)
> at
> org.apache.cassandra.db.columniterator.SSTableSliceIterator.<init>(SSTableSliceIterator.java:67)
> at
> org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:66)
> at
> org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:80)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1314)
> at
> org.apache.cassandra.db.ColumnFamilyStore.cacheRow(ColumnFamilyStore.java:1181)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1221)
> at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1168)
> at org.apache.cassandra.db.Table.getRow(Table.java:385)
> at
> org.apache.cassandra.db.SliceByNamesReadCommand.getRow(SliceByNamesReadCommand.java:58)
> at
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:641)
> at
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira