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