Claudio Atzori created CASSANDRA-4281:
-----------------------------------------
Summary: schema agreement accross the nodes
Key: CASSANDRA-4281
URL: https://issues.apache.org/jira/browse/CASSANDRA-4281
Project: Cassandra
Issue Type: Bug
Components: Core
Affects Versions: 1.1.0
Reporter: Claudio Atzori
I'm creating a cluster of 2 nodes (for now), of cassandra 1.1.0, installed on
Ubuntu 10.04
[email protected]:/etc/cassandra# uname -a
Linux node2 2.6.32-5-xen-amd64 #1 SMP Fri Sep 9 22:23:19 UTC 2011 x86_64
GNU/Linux
with all defaults in cassandra.yaml, except for:
cluster_name
initial_token (I set a 50/50 balancing between the 2 nodes)
seeds list (one of the 2 nodes ip address)
#listen_address: localhost
#rpc_address: localhost
The 2 nodes recognize each other
[email protected]:/etc/cassandra# nodetool ring
Address DC Rack Status State Load
Effective-Owership Token
85070591730234615865843651857942052864
146.48.122.136 datacenter1 rack1 Up Normal 28.62 KB 100.00%
0}}
146.48.122.137 datacenter1 rack1 Up Normal 21.79 KB 100.00%
85070591730234615865843651857942052864
But, I'm experiencing an issue. I'm trying to define a new keyspace from the
cqlsh.
cqlsh> CREATE KEYSPACE efg_mr WITH strategy_class = 'SimpleStrategy' AND
strategy_options:replication_factor=2 ;
..and ok, the new keyspace is seen accross the 2 nodes.
cqlsh> DESCRIBE KEYSPACE efg_mr ;
CREATE KEYSPACE efg_mr WITH strategy_class = 'SimpleStrategy'
AND strategy_options:replication_factor = '2';
now I wanted to define a column family:
cqlsh> CREATE COLUMNFAMILY records (KEY varchar PRIMARY KEY, title varchar,
year varchar) ;
at this point I noticed an exception in /var/log/cassandra/output.log
ERROR 14:28:47,475 Exception in thread Thread[MigrationStage:1,5,main]
java.lang.RuntimeException: java.nio.charset.MalformedInputException: Input
length = 1
at
org.apache.cassandra.cql3.ColumnIdentifier.<init>(ColumnIdentifier.java:50)
at
org.apache.cassandra.cql3.CFDefinition.getKeyId(CFDefinition.java:125)
at org.apache.cassandra.cql3.CFDefinition.<init>(CFDefinition.java:59)
at
org.apache.cassandra.config.CFMetaData.updateCfDef(CFMetaData.java:1278)
at org.apache.cassandra.config.CFMetaData.keyAlias(CFMetaData.java:221)
at
org.apache.cassandra.config.CFMetaData.fromSchemaNoColumns(CFMetaData.java:1162)
at
org.apache.cassandra.config.CFMetaData.fromSchema(CFMetaData.java:1190)
at
org.apache.cassandra.config.KSMetaData.deserializeColumnFamilies(KSMetaData.java:291)
at
org.apache.cassandra.db.DefsTable.mergeColumnFamilies(DefsTable.java:358)
at org.apache.cassandra.db.DefsTable.mergeSchema(DefsTable.java:270)
at
org.apache.cassandra.db.DefsTable.mergeRemoteSchema(DefsTable.java:248)
at
org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:48)
at
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:30)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
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:662)
Caused by: java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:781)
at
org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:163)
at
org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:120)
at
org.apache.cassandra.cql3.ColumnIdentifier.<init>(ColumnIdentifier.java:46)
... 18 more
and from now on, only one of the 2 nodes knows about the new column family, the
other one somehow hasn't been informed, or didn't complete the agreement on the
new column family.
Since I'm creating a new cluster I tried several times to drop all the data (rm
-rf /var/lib/cassandra/*) and starting over again. But sometimes this error
happens on the column family definition, sometimes after a CREATE INDEX command.
Am I doing something wrong?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira