Venky created IGNITE-4890:
-----------------------------

             Summary: Unable to create tables automatically because 
'unconfigured columnfamily' error is not handled for older Cassandra versions
                 Key: IGNITE-4890
                 URL: https://issues.apache.org/jira/browse/IGNITE-4890
             Project: Ignite
          Issue Type: Bug
          Components: compatibility
    Affects Versions: 1.9
            Reporter: Venky
             Fix For: 2.0


PROBLEM:
When running Ignite with older Cassandra versions (i.e DSE 4.8.10, Cassandra 
2.1.6 or older), we noticed that only the first tabel in an Ignite config is 
created and the others fail with 'unconfigured columnfamily' exception.

SUGGESTED FIX:
It appears that the error from Cassandra is changed in newer versions to 
'unconfigured table ...' and this is handled.  The conditions checked in 
org.apache.ignite.cache.store.cassandra.common.CassandraHelper needs to be 
modified to handle the older Cassandra errors. 

We are submitting a patch to do that. 

13:44:28,753 ERROR com.walmartlabs.qarth.ignite.tests.utils.CacheStoreHelper 
[main] - Failed to execute Cassandra CQL statement: insert into 
"test1"."blob_test2" ("key", "value") values (?,?);
class org.apache.ignite.IgniteException: Failed to execute Cassandra CQL 
statement: insert into "test1"."blob_test2" ("key", "value") values (?,?);
        at 
org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:163)
        at 
org.apache.ignite.cache.store.cassandra.CassandraCacheStore.write(CassandraCacheStore.java:276)
        at 
com.walmartlabs.qarth.ignite.tests.cassandra.CassandraDirectPersistenceTest.blobStrategyTest(CassandraDirectPersistenceTest.java:233)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at 
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: class org.apache.ignite.IgniteException: Failed to prepare Cassandra 
CQL statement: insert into "test1"."blob_test2" ("key", "value") values (?,?);
        at 
org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.prepareStatement(CassandraSessionImpl.java:615)
        at 
org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.execute(CassandraSessionImpl.java:133)
        ... 27 more
Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: 
unconfigured columnfamily blob_test2
        at 
com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:50)
        at 
com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37)
        at 
com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:98)
        at 
org.apache.ignite.cache.store.cassandra.session.CassandraSessionImpl.prepareStatement(CassandraSessionImpl.java:597)
        ... 28 more
Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: 
unconfigured columnfamily blob_test2
        at 
com.datastax.driver.core.Responses$Error.asException(Responses.java:136)
        at 
com.datastax.driver.core.SessionManager$4.apply(SessionManager.java:220)
        at 
com.datastax.driver.core.SessionManager$4.apply(SessionManager.java:196)
        at 
com.google.common.util.concurrent.Futures$AsyncChainingFuture.doTransform(Futures.java:1442)
        at 
com.google.common.util.concurrent.Futures$AsyncChainingFuture.doTransform(Futures.java:1433)
        at 
com.google.common.util.concurrent.Futures$AbstractChainingFuture.run(Futures.java:1408)
        at 
com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
        at 
com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
        at 
com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
        at 
com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:613)
        at 
com.datastax.driver.core.Connection$Future.onSet(Connection.java:1174)
        at 
com.datastax.driver.core.Connection$Future.onSet(Connection.java:1168)
        at 
com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:184)
        at 
com.datastax.driver.core.RequestHandler.access$2500(RequestHandler.java:43)
        at 
com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:798)
        at 
com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:617)
        at 
com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1005)
        at 
com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:928)
        at 
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304)
        at 
io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304)
        at 
io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304)
        at 
io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:276)
        at 
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:263)
        at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:318)
        at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:304)
        at 
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
        at 
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
        at 
io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
        at 
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
        at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to