Oh, right: my plan didn't work, because schema changes aren't really commitlog-ified. (So, commitlog replayed, but the schema didn't get recreated to match its earlier state.)
Can you reproduce the old-fashioned way by sending the create + insert commands, after nuking things? On Mon, Aug 22, 2011 at 10:35 PM, Dave Brosius <dbros...@mebigfatguy.com> wrote: > 0.8.4 seems to fail to load in the same way. When i deleted the data > directory, it appears to start up correctly, I see > > INFO 23:30:44,067 JNA not found. Native methods will be disabled. > INFO 23:30:44,100 Loading settings from > file:/home/dave/apache-cassandra-0.8.4/conf/cassandra.yaml > INFO 23:30:44,387 DiskAccessMode 'auto' determined to be standard, > indexAccessMode is standard > INFO 23:30:44,710 Global memtable threshold is enabled at 245MB > INFO 23:30:44,713 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:44,715 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:44,716 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:44,717 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:44,718 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:44,719 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:44,934 Creating new commitlog segment > /var/lib/cassandra/commitlog/CommitLog-1314070244934.log > INFO 23:30:44,994 Couldn't detect any schema definitions in local storage. > INFO 23:30:45,001 Found table data in data directories. Consider using the > CLI to define your schema. > INFO 23:30:45,004 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:45,011 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:45,012 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:45,013 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:45,014 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:45,015 Removing compacted SSTable files (see > http://wiki.apache.org/cassandra/MemtableSSTable) > INFO 23:30:45,134 Replaying > /var/lib/cassandra/commitlog/CommitLog-1313973548456.log > INFO 23:30:45,239 Finished reading > /var/lib/cassandra/commitlog/CommitLog-1313973548456.log > INFO 23:30:45,244 Skipped 44 mutations from unknown (probably removed) CF > with id 1001 > INFO 23:30:45,256 Enqueuing flush of Memtable-LocationInfo@18930675(186/232 > serialized/live bytes, 5 ops) > INFO 23:30:45,259 Writing Memtable-LocationInfo@18930675(186/232 > serialized/live bytes, 5 ops) > INFO 23:30:45,274 Enqueuing flush of > Memtable-Migrations@10140210(23897/29871 serialized/live bytes, 3 ops) > INFO 23:30:45,275 Enqueuing flush of Memtable-Schema@3564915(11042/13802 > serialized/live bytes, 12 ops) > INFO 23:30:45,578 Completed flushing > /var/lib/cassandra/data/system/LocationInfo-g-1-Data.db (296 bytes) > INFO 23:30:45,602 Writing Memtable-Migrations@10140210(23897/29871 > serialized/live bytes, 3 ops) > INFO 23:30:45,854 Completed flushing > /var/lib/cassandra/data/system/Migrations-g-1-Data.db (23961 bytes) > INFO 23:30:45,857 Writing Memtable-Schema@3564915(11042/13802 > serialized/live bytes, 12 ops) > INFO 23:30:46,080 Completed flushing > /var/lib/cassandra/data/system/Schema-g-1-Data.db (11274 bytes) > INFO 23:30:46,095 Log replay complete, 12 replayed mutations > INFO 23:30:46,166 Enqueuing flush of Memtable-LocationInfo@17711949(29/36 > serialized/live bytes, 1 ops) > INFO 23:30:46,167 Writing Memtable-LocationInfo@17711949(29/36 > serialized/live bytes, 1 ops) > INFO 23:30:46,440 Completed flushing > /var/lib/cassandra/data/system/LocationInfo-g-2-Data.db (80 bytes) > INFO 23:30:47,205 Upgrading to 0.7. Purging hints if there are any. Old > hints will be snapshotted. > INFO 23:30:47,352 Cassandra version: 0.8.4 > INFO 23:30:47,353 Thrift API version: 19.10.0 > INFO 23:30:47,353 Loading persisted ring state > INFO 23:30:47,355 Starting up server gossip > INFO 23:30:47,360 Enqueuing flush of Memtable-LocationInfo@5604828(123/153 > serialized/live bytes, 2 ops) > INFO 23:30:47,361 Writing Memtable-LocationInfo@5604828(123/153 > serialized/live bytes, 2 ops) > INFO 23:30:47,608 Completed flushing > /var/lib/cassandra/data/system/LocationInfo-g-3-Data.db (231 bytes) > INFO 23:30:47,658 Starting Messaging Service on localhost/127.0.0.1:7000 > INFO 23:30:47,689 Using saved token 118080104480458226093045236055971412420 > INFO 23:30:47,691 Enqueuing flush of Memtable-LocationInfo@11872808(53/66 > serialized/live bytes, 2 ops) > INFO 23:30:47,692 Writing Memtable-LocationInfo@11872808(53/66 > serialized/live bytes, 2 ops) > INFO 23:30:47,968 Completed flushing > /var/lib/cassandra/data/system/LocationInfo-g-4-Data.db (163 bytes) > INFO 23:30:47,974 Node localhost/127.0.0.1 state jump to normal > INFO 23:30:47,978 Will not load MX4J, mx4j-tools.jar is not in the > classpath > > > On 08/22/2011 11:24 PM, Jonathan Ellis wrote: >> >> It's erroring out trying to load the schema itself, though, which >> isn't supposed to happen. >> >> On Mon, Aug 22, 2011 at 10:14 PM, Dave Brosius<dbros...@mebigfatguy.com> >> wrote: >>> >>> Sure i'll try that, but I'm pretty sure it was creating a column family >>> without any column meta data (types), then, client.insert'ing a >>> ByteBuffer >>> that wasn't based on bytes from a String.getBytes call. >>> >>> >>> >>> On 08/22/2011 11:09 AM, Jonathan Ellis wrote: >>>> >>>> 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