You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Dmitriy Pavlov (JIRA)" <ji...@apache.org> on 2018/04/23 17:41:00 UTC

[jira] [Commented] (IGNITE-4890) Unable to create tables automatically because 'unconfigured columnfamily' error is not handled for older Cassandra versions

    [ https://issues.apache.org/jira/browse/IGNITE-4890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16448550#comment-16448550 ] 

Dmitriy Pavlov commented on IGNITE-4890:
----------------------------------------

Hi [~kuaw26] could you please take a look?

> 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: general
>    Affects Versions: 1.9
>            Reporter: Venky Kandaswamy
>            Priority: Major
>              Labels: patch
>
> 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
(v7.6.3#76005)