[ https://issues.apache.org/jira/browse/CASSANDRA-8090?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Lerer updated CASSANDRA-8090: -------------------------------------- Component/s: CQL > NullPointerException when using prepared statements > --------------------------------------------------- > > Key: CASSANDRA-8090 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8090 > Project: Cassandra > Issue Type: Bug > Components: CQL > Reporter: Carl Yeksigian > Assignee: Benjamin Lerer > Fix For: 2.2.0 beta 1 > > > Due to the changes in CASSANDRA-4914, using a prepared statement from > multiple threads leads to a race condition where the simple selection may be > reset from a different thread, causing the following NPE: > {noformat} > java.lang.NullPointerException: null > at org.apache.cassandra.cql3.ResultSet.addRow(ResultSet.java:63) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:372) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1120) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:283) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:260) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:213) > ~[main/:na] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:63) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:226) > ~[main/:na] > at > org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:481) > ~[main/:na] > at > org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:133) > ~[main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:438) > [main/:na] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:334) > [main/:na] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > [netty-all-4.0.23.Final.jar:4.0.23.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) > [netty-all-4.0.23.Final.jar:4.0.23.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32) > [netty-all-4.0.23.Final.jar:4.0.23.Final] > at > io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324) > [netty-all-4.0.23.Final.jar:4.0.23.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > [na:1.7.0_67] > at > org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:163) > [main/:na] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) > [main/:na] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67] > {noformat} > Reproduced this using the stress tool: > {noformat} > ./tools/bin/cassandra-stress user profile=tools/cqlstress-example.yaml > ops\(insert=1,simple1=1\) > {noformat} > You'll need to change the {noformat}select:{noformat} line to be /1000 to > prevent the illegal query exceptions. -- This message was sent by Atlassian JIRA (v6.3.4#6332)