You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Eduardo Alonso de Blas (JIRA)" <ji...@apache.org> on 2016/09/06 17:23:20 UTC
[jira] [Updated] (CASSANDRA-12618) Out of memory bug with one
insert
[ https://issues.apache.org/jira/browse/CASSANDRA-12618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eduardo Alonso de Blas updated CASSANDRA-12618:
-----------------------------------------------
Description:
When executing an INSERT built by QueryBuilder in java driver produces an OutOfMemory in the server.
Having a table with a List<String> field like this:
CREATE TABLE keyspace_name.table_name(
pk uuid,
mylist list<text>,
PRIMARY KEY (pk)
);
Anyone can build an INSERT with QueryHandler like this:
Statement insert = QueryBuilder.insertInto(keyspace, table)
.value("pk", UUID.randomUUID())
.value("mylist","blabla");
session.execute(insert);
just trying to set a String where should be a List<String>.
I have set tracing on in the cassandra node and added some debug lines in ListSerializer.
DEBUG [SharedPool-Worker-2] 2016-09-06 19:21:43,995 ListSerializer.java:92 - deseiralizign a ByteBuffer in List lenght: 1651269986
ERROR [SharedPool-Worker-2] 2016-09-06 19:21:44,310 JVMStabilityInspector.java:140 - JVM state determined to be unstable. Exiting forcefully due to:
java.lang.OutOfMemoryError: Java heap space
at java.util.ArrayList.<init>(ArrayList.java:152) ~[na:1.8.0_101]
at org.apache.cassandra.serializers.ListSerializer.deserializeForNativeProtocol(ListSerializer.java:93) ~[main/:na]
at org.apache.cassandra.cql3.Lists$Value.fromSerialized(Lists.java:137) ~[main/:na]
at org.apache.cassandra.cql3.Lists$Marker.bind(Lists.java:242) ~[main/:na]
at org.apache.cassandra.cql3.Lists$Setter.execute(Lists.java:295) ~[main/:na]
at org.apache.cassandra.cql3.statements.UpdateStatement.addUpdateForKey(UpdateStatement.java:94) ~[main/:na]
at org.apache.cassandra.cql3.statements.ModificationStatement.addUpdates(ModificationStatement.java:676) ~[main/:na]
at org.apache.cassandra.cql3.statements.ModificationStatement.getMutations(ModificationStatement.java:616) ~[main/:na]
at org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:429) ~[main/:na]
at org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:417) ~[main/:na]
at com.stratio.cassandra.lucene.IndexQueryHandler.execute(IndexQueryHandler.java:181) ~[cassandra-lucene-index-plugin-3.7.2-RC1-SNAPSHOT.jar:na]
at com.stratio.cassandra.lucene.IndexQueryHandler.processStatement(IndexQueryHandler.java:155) ~[cassandra-lucene-index-plugin-3.7.2-RC1-SNAPSHOT.jar:na]
at com.stratio.cassandra.lucene.IndexQueryHandler.process(IndexQueryHandler.java:129) ~[cassandra-lucene-index-plugin-3.7.2-RC1-SNAPSHOT.jar:na]
at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115) ~[main/:na]
at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:507) [main/:na]
at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:401) [main/:na]
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.36.Final.jar:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292) [netty-all-4.0.36.Final.jar:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:32) [netty-all-4.0.36.Final.jar:4.0.36.Final]
at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:283) [netty-all-4.0.36.Final.jar:4.0.36.Final]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_101]
at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) [main/:na]
at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [main/:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]
was:
When executing an INSERT built by QueryBuilder in java driver produces an OutOfMemory in the server.
Having a table with a List<String> field like this:
CREATE TABLE IF NOT EXISTS keyspace_name.table_name(
pk uuid, mylist list<text>, PRIMARY KEY (pk));
> Out of memory bug with one insert
> ----------------------------------
>
> Key: CASSANDRA-12618
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12618
> Project: Cassandra
> Issue Type: Bug
> Reporter: Eduardo Alonso de Blas
> Priority: Critical
> Attachments: EvilQuery.tar.gz
>
>
> When executing an INSERT built by QueryBuilder in java driver produces an OutOfMemory in the server.
> Having a table with a List<String> field like this:
> CREATE TABLE keyspace_name.table_name(
> pk uuid,
> mylist list<text>,
> PRIMARY KEY (pk)
> );
> Anyone can build an INSERT with QueryHandler like this:
> Statement insert = QueryBuilder.insertInto(keyspace, table)
> .value("pk", UUID.randomUUID())
> .value("mylist","blabla");
> session.execute(insert);
> just trying to set a String where should be a List<String>.
> I have set tracing on in the cassandra node and added some debug lines in ListSerializer.
> DEBUG [SharedPool-Worker-2] 2016-09-06 19:21:43,995 ListSerializer.java:92 - deseiralizign a ByteBuffer in List lenght: 1651269986
> ERROR [SharedPool-Worker-2] 2016-09-06 19:21:44,310 JVMStabilityInspector.java:140 - JVM state determined to be unstable. Exiting forcefully due to:
> java.lang.OutOfMemoryError: Java heap space
> at java.util.ArrayList.<init>(ArrayList.java:152) ~[na:1.8.0_101]
> at org.apache.cassandra.serializers.ListSerializer.deserializeForNativeProtocol(ListSerializer.java:93) ~[main/:na]
> at org.apache.cassandra.cql3.Lists$Value.fromSerialized(Lists.java:137) ~[main/:na]
> at org.apache.cassandra.cql3.Lists$Marker.bind(Lists.java:242) ~[main/:na]
> at org.apache.cassandra.cql3.Lists$Setter.execute(Lists.java:295) ~[main/:na]
> at org.apache.cassandra.cql3.statements.UpdateStatement.addUpdateForKey(UpdateStatement.java:94) ~[main/:na]
> at org.apache.cassandra.cql3.statements.ModificationStatement.addUpdates(ModificationStatement.java:676) ~[main/:na]
> at org.apache.cassandra.cql3.statements.ModificationStatement.getMutations(ModificationStatement.java:616) ~[main/:na]
> at org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:429) ~[main/:na]
> at org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:417) ~[main/:na]
> at com.stratio.cassandra.lucene.IndexQueryHandler.execute(IndexQueryHandler.java:181) ~[cassandra-lucene-index-plugin-3.7.2-RC1-SNAPSHOT.jar:na]
> at com.stratio.cassandra.lucene.IndexQueryHandler.processStatement(IndexQueryHandler.java:155) ~[cassandra-lucene-index-plugin-3.7.2-RC1-SNAPSHOT.jar:na]
> at com.stratio.cassandra.lucene.IndexQueryHandler.process(IndexQueryHandler.java:129) ~[cassandra-lucene-index-plugin-3.7.2-RC1-SNAPSHOT.jar:na]
> at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115) ~[main/:na]
> at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:507) [main/:na]
> at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:401) [main/:na]
> at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.36.Final.jar:4.0.36.Final]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292) [netty-all-4.0.36.Final.jar:4.0.36.Final]
> at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:32) [netty-all-4.0.36.Final.jar:4.0.36.Final]
> at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:283) [netty-all-4.0.36.Final.jar:4.0.36.Final]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_101]
> at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) [main/:na]
> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [main/:na]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)