Thanks Jonathan for the fast response time. I'll patch your fix and give it a whirl.
On Thu, Oct 15, 2009 at 11:47 AM, Jonathan Ellis <jbel...@gmail.com> wrote: > Aha! :) > > Could you test the patch attached to > https://issues.apache.org/jira/browse/CASSANDRA-493 ? > > (If you're using the binary release, you can get the source from > https://svn.apache.org/repos/asf/incubator/cassandra/tags/cassandra-0.4.0-final/ > and build with "ant") > > thanks, > > -Jonathan > > On Thu, Oct 15, 2009 at 1:35 PM, Edmond Lau <edm...@ooyala.com> wrote: >> Yes, I'm using UTF8Type as the comparator. >> >> On Thu, Oct 15, 2009 at 11:33 AM, Jonathan Ellis <jbel...@gmail.com> wrote: >>> Quicker question: Is this ColumnFamily using UTF8Type as its comparator? >>> >>> On Thu, Oct 15, 2009 at 1:17 PM, Jonathan Ellis <jbel...@gmail.com> wrote: >>>> The exception on restart is occurring during a compaction of >>>> already-written sstables. It logs what the files are beforehand >>>> ("Compacting [...]"). Could you gzip up those sstables and send those >>>> to me somehow (the Data, Index, and Filter files) along with the >>>> ColumnFamily definition from your config so I can try some tests out? >>>> >>>> -Jonathan >>>> >>>> On Thu, Oct 15, 2009 at 12:51 PM, Edmond Lau <edm...@ooyala.com> wrote: >>>>> I'm using the cassandra 0.4 release. I was loading a bunch of data >>>>> into cassandra when the thrift api started throwing >>>>> UnavailableExceptions. Checking the logs, I found errors that looked >>>>> like the following: >>>>> >>>>> ERROR [ROW-MUTATION-STAGE:2935] 2009-10-15 17:32:52,518 >>>>> DebuggableThreadPoolExecutor.java (line 85) Error in >>>>> ThreadPoolExecutor >>>>> java.lang.IllegalArgumentException: The name should match the name of >>>>> the current column or super column >>>>> at >>>>> org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:208) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:200) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamily.addColumns(ColumnFamily.java:127) >>>>> at org.apache.cassandra.db.Memtable.resolve(Memtable.java:156) >>>>> at org.apache.cassandra.db.Memtable.put(Memtable.java:139) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamilyStore.apply(ColumnFamilyStore.java:450) >>>>> at org.apache.cassandra.db.Table.apply(Table.java:608) >>>>> at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:205) >>>>> at >>>>> org.apache.cassandra.db.RowMutationVerbHandler.doVerb(RowMutationVerbHandler.java:79) >>>>> at >>>>> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:39) >>>>> 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) >>>>> ERROR [ROW-MUTATION-STAGE:2935] 2009-10-15 17:32:52,519 >>>>> CassandraDaemon.java (line 71) Fatal exception in thread >>>>> Thread[ROW-MUTATION-STAGE:2935,5,main] >>>>> java.lang.IllegalArgumentException: The name should match the name of >>>>> the current column or super column >>>>> at >>>>> org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:208) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:200) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamily.addColumns(ColumnFamily.java:127) >>>>> at org.apache.cassandra.db.Memtable.resolve(Memtable.java:156) >>>>> at org.apache.cassandra.db.Memtable.put(Memtable.java:139) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamilyStore.apply(ColumnFamilyStore.java:450) >>>>> at org.apache.cassandra.db.Table.apply(Table.java:608) >>>>> at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:205) >>>>> at >>>>> org.apache.cassandra.db.RowMutationVerbHandler.doVerb(RowMutationVerbHandler.java:79) >>>>> at >>>>> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:39) >>>>> 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) >>>>> >>>>> Stopping and starting the cluster gives me something similar: >>>>> >>>>> ERROR - Error in executor futuretask >>>>> java.util.concurrent.ExecutionException: >>>>> java.lang.IllegalArgumentException: The name should match the name of >>>>> the current column or super column >>>>> at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) >>>>> at java.util.concurrent.FutureTask.get(FutureTask.java:83) >>>>> at >>>>> org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor.logFutureExceptions(DebuggableThreadPoolExecutor.java:95) >>>>> at >>>>> org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.afterExecute(DebuggableScheduledThreadPoolExecutor.java:50) >>>>> at >>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:888) >>>>> at >>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>>>> at java.lang.Thread.run(Thread.java:619) >>>>> Caused by: java.lang.IllegalArgumentException: The name should match >>>>> the name of the current column or super column >>>>> at org.apache.cassandra.db.SuperColumn.putColumn(SuperColumn.java:208) >>>>> at org.apache.cassandra.db.ColumnFamily.addColumn(ColumnFamily.java:200) >>>>> at org.apache.cassandra.db.ColumnFamily.addColumns(ColumnFamily.java:127) >>>>> at org.apache.cassandra.db.ColumnFamily.resolve(ColumnFamily.java:408) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamilyStore.merge(ColumnFamilyStore.java:477) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamilyStore.doFileCompaction(ColumnFamilyStore.java:1078) >>>>> at >>>>> org.apache.cassandra.db.ColumnFamilyStore.doCompaction(ColumnFamilyStore.java:689) >>>>> at >>>>> org.apache.cassandra.db.MinorCompactionManager$1.call(MinorCompactionManager.java:165) >>>>> at >>>>> org.apache.cassandra.db.MinorCompactionManager$1.call(MinorCompactionManager.java:162) >>>>> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) >>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:138) >>>>> at >>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) >>>>> at >>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207) >>>>> at >>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>>>> ... 2 more >>>>> >>>>> I haven't yet tried to repro, but was wondering if anyone had any >>>>> insight on it. It looks like an update got routed to a super column >>>>> that wasn't responsible for it? >>>>> >>>>> Edmond >>>>> >>>> >>> >> >