Adam Dougal created CASSANDRA-10776:
---------------------------------------
Summary: Prepare of statements after table creation fail with
unconfigured column family
Key: CASSANDRA-10776
URL: https://issues.apache.org/jira/browse/CASSANDRA-10776
Project: Cassandra
Issue Type: Bug
Reporter: Adam Dougal
Cassandra 2.1.8
We have multiple app instances trying to create the same table using IF NOT
EXISTS.
We check for schema agreement via the Java Driver before and after every
statement.
After creating the table we then prepare statements and we sometimes get:
{code}
com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured
columnfamily locks
at
com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:50)
~[cassandra-driver-core-2.1.8.jar:na]
at
com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37)
~[cassandra-driver-core-2.1.8.jar:na]
at
com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:79)
~[cassandra-driver-core-2.1.8.jar:na]
at
uk.sky.cirrus.locking.CassandraLockingMechanism.init(CassandraLockingMechanism.java:69)
~[main/:na]
at uk.sky.cirrus.locking.Lock.acquire(Lock.java:35) [main/:na]
at uk.sky.cirrus.CqlMigratorImpl.migrate(CqlMigratorImpl.java:83)
[main/:na]
at
uk.sky.cirrus.locking.LockVerificationTest.lambda$shouldManageContentionsForSchemaMigrate$0(LockVerificationTest.java:90)
[test/:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
~[na:1.8.0_60]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
~[na:1.8.0_60]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
~[na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_60]
{code}
Looking at the server logs we get:
{code}
ava.lang.RuntimeException:
org.apache.cassandra.exceptions.ConfigurationException: Column family ID
mismatch (found 90bbb372-9446-11e5-b1ca-8119a6964819; expected
90b87f20-9446-11e5-b1ca-8119a6964819)
at org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1145)
~[main/:na]
at
org.apache.cassandra.db.DefsTables.updateColumnFamily(DefsTables.java:422)
~[main/:na]
at
org.apache.cassandra.db.DefsTables.mergeColumnFamilies(DefsTables.java:295)
~[main/:na]
at
org.apache.cassandra.db.DefsTables.mergeSchemaInternal(DefsTables.java:194)
~[main/:na]
at org.apache.cassandra.db.DefsTables.mergeSchema(DefsTables.java:166)
~[main/:na]
at
org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:49)
~[main/:na]
at
org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
~[main/:na]
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
~[na:1.8.0_60]
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
~[na:1.8.0_60]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
~[na:1.8.0_60]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
{code}
We found this issue which is marked as resolved:
https://issues.apache.org/jira/browse/CASSANDRA-8387
Does the IF NOT EXISTS just check the local node?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)