incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Ellis <jbel...@gmail.com>
Subject Re: cassandra fatal error - "The name should match the name of the current column or super column"
Date Thu, 15 Oct 2009 18:17:04 GMT
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 <edmond@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
>

Mime
View raw message