You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Aaron Morton <aa...@thelastpickle.com> on 2010/10/01 00:37:49 UTC

Schema Migration Failed

Upgrading from 0.7 nightly for 31/08 to beta 2. 

This one seems serious, schema migration is failing. I'm dead in the water here, so any quick ideas appreciated. 

Have done an import schema on one node, and also tried system_add_keyspace on the same node. It's showing the Keyspace1 and my keyspace. But am getting these errors on the other nodes...

ERROR [READ_STAGE:19] 2010-10-01 11:31:57,872 AbstractCassandraDaemon.java (line 88) Fatal exception in thread Thread[READ_STAGE:19,5,main]
java.lang.ClassCastException: org.apache.avro.util.Utf8 cannot be cast to java.lang.Double
        at org.apache.cassandra.config.avro.CfDef.put(CfDef.java:60)
        at org.apache.avro.generic.GenericDatumReader.setField(GenericDatumReader.java:152)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:142)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.generic.GenericDatumReader.readArray(GenericDatumReader.java:192)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:116)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:142)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:142)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:118)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:142)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:105)
        at org.apache.cassandra.io.SerDeUtils.deserializeWithSchema(SerDeUtils.java:98)
        at org.apache.cassandra.db.migration.Migration.deserialize(Migration.java:262)
        at org.apache.cassandra.db.DefinitionsUpdateResponseVerbHandlerdoVerb(DefinitionsUpdateResponseVerbHandler.java:57)
        at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:50)
        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)

And they are not showing the keyspace in JMX. So things are way out of wack.

is it correct to see avro in the call stack ? 

Aaron


Re: Schema Migration Failed

Posted by Aaron Morton <aa...@thelastpickle.com>.
OK, turns out the sky was not falling :)

driftx helped me on IRC, we added the node tokens to the yaml file then deleted the entire system directory, restarted and it worked. 

Guess I need to go back and read http://www.riptano.com/blog/live-schema-updates-cassandra-07 to understand schema propagation. 

Thanks
aaron

On 01 Oct, 2010,at 11:37 AM, Aaron Morton <aa...@thelastpickle.com> wrote:

Upgrading from 0.7 nightly for 31/08 to beta 2. 

This one seems serious, schema migration is failing. I'm dead in the water here, so any quick ideas appreciated. 

Have done an import schema on one node, and also tried system_add_keyspace on the same node. It's showing the Keyspace1 and my keyspace. But am getting these errors on the other nodes...

ERROR [READ_STAGE:19] 2010-10-01 11:31:57,872 AbstractCassandraDaemon.java (line 88) Fatal exception in thread Thread[READ_STAGE:19,5,main]
java.lang.ClassCastException: org.apache.avro.util.Utf8 cannot be cast to java.lang.Double
        at org.apache.cassandra.config.avro.CfDef.put(CfDef.java:60)
        at org.apache.avro.generic.GenericDatumReader.setField(GenericDatumReader.java:152)
        at org.apache.avro.genericGenericDatumReader.readRecord(GenericDatumReader.java:142)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.generic.GenericDatumReader.readArray(GenericDatumReader.java:192)
        at org.apacheavro.generic.GenericDatumReader.read(GenericDatumReader.java:116)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:142)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:142)
        at orgapache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:118)
        at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:142)
        at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:114)
        at org.apache.avro.genericGenericDatumReader.read(GenericDatumReader.java:105)
        at org.apache.cassandra.io.SerDeUtils.deserializeWithSchema(SerDeUtils.java:98)
        at org.apache.cassandra.db.migrationMigration.deserialize(Migration.java:262)
        at org.apache.cassandra.db.DefinitionsUpdateResponseVerbHandler.doVerb(DefinitionsUpdateResponseVerbHandler.java:57)
        at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:50)
        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)

And they are not showing the keyspace in JMX. So things are way out of wack.

is it correct to see avro in the call stack ? 

Aaron