cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Edmond Lau <edm...@ooyala.com>
Subject cassandra fatal error - "The name should match the name of the current column or super column"
Date Thu, 15 Oct 2009 17:51:46 GMT
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