Yes, you can blow away both the data and commitlog directories and
restart, but can you try these first to troubleshoot?

1. make a copy of the commitlog directory
2. downgrade to 0.8 with no other changes, to see if it's something on
the new read path
2a. if 0.8 starts up then we will fix the read code in trunk
2b. if 0.8 doesn't start up either, remove the data directory but NOT
commitlog, and restart.  this will cause commitlog to be replayed --
with luck whatever is causing the problem is still in there, so if it
breaks again, we have a reproducible case

Thanks!

On Mon, Aug 22, 2011 at 1:16 AM, Dave Brosius <dbros...@mebigfatguy.com> wrote:
> Greetings, I'm running head from source, and now when i try to start up the
> database, i get the following exception which causes client connection
> failures. I'm fine with blowing away the database, just playing, but wanted
> to know if there is a safe way to do this.
>
> Exception encountered during startup.
> java.lang.RuntimeException: error reading 1 of 3
>    at
> org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:83)
>    at
> org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:40)
>    at
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
>    at
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
>    at
> org.apache.cassandra.db.columniterator.SSTableSliceIterator.hasNext(SSTableSliceIterator.java:107)
>    at
> org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:194)
>    at org.apache.cassandra.utils.MergeIterator.<init>(MergeIterator.java:47)
>    at
> org.apache.cassandra.utils.MergeIterator$ManyToOne.<init>(MergeIterator.java:142)
>    at org.apache.cassandra.utils.MergeIterator.get(MergeIterator.java:66)
>    at
> org.apache.cassandra.db.filter.QueryFilter.collateColumns(QueryFilter.java:96)
>    at
> org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:221)
>    at
> org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:63)
>    at
> org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1285)
>    at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1169)
>    at
> org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1120)
>    at org.apache.cassandra.db.DefsTable.loadFromStorage(DefsTable.java:83)
>    at
> org.apache.cassandra.config.DatabaseDescriptor.loadSchemas(DatabaseDescriptor.java:507)
>    at
> org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:159)
>    at
> org.apache.cassandra.service.AbstractCassandraDaemon.activate(AbstractCassandraDaemon.java:335)
>    at
> org.apache.cassandra.thrift.CassandraDaemon.main(CassandraDaemon.java:91)
> Caused by: java.nio.channels.ClosedChannelException
>    at
> org.apache.cassandra.io.util.RandomAccessReader.read(RandomAccessReader.java:268)
>    at java.io.RandomAccessFile.readByte(RandomAccessFile.java:589)
>    at
> org.apache.cassandra.utils.ByteBufferUtil.readShortLength(ByteBufferUtil.java:356)
>    at
> org.apache.cassandra.utils.ByteBufferUtil.readWithShortLength(ByteBufferUtil.java:367)
>    at
> org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:87)
>    at
> org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:82)
>    at
> org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:72)
>    at
> org.apache.cassandra.db.ColumnSerializer.deserialize(ColumnSerializer.java:36)
>    at
> org.apache.cassandra.db.columniterator.SimpleSliceReader.computeNext(SimpleSliceReader.java:79)
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com

Reply via email to