You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sam Tunnicliffe (JIRA)" <ji...@apache.org> on 2015/06/23 15:28:01 UTC

[jira] [Created] (CASSANDRA-9636) Duplicate columns in selection causes AssertionError

Sam Tunnicliffe created CASSANDRA-9636:
------------------------------------------

             Summary: Duplicate columns in selection causes AssertionError
                 Key: CASSANDRA-9636
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9636
             Project: Cassandra
          Issue Type: Bug
            Reporter: Sam Tunnicliffe
             Fix For: 2.1.x, 2.0.x, 2.2.0 rc2


Prior to CASSANDRA-9532, unaliased duplicate fields in a selection would be silently ignored. Now, they trigger a server side exception and an unfriendly error response, which we should clean up. Duplicate columns *with* aliases are not affected.

{code}
CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
CREATE TABLE ks.t1 (k int PRIMARY KEY, v int);
INSERT INTO ks.t2 (k, v) VALUES (0, 0);
SELECT k, v FROM ks.t2;
SELECT k, v, v AS other_v FROM ks.t2;
SELECT k, v, v FROM ks.t2;
{code}

The final statement results in this error response & server side stacktrace:
{code}
ServerError: <ErrorMessage code=0000 [Server error] message="java.lang.AssertionError">


ERROR 13:01:30 Unexpected exception during request; channel = [id: 0x44d22e61, /127.0.0.1:39463 => /127.0.0.1:9042]
java.lang.AssertionError: null
        at org.apache.cassandra.cql3.ResultSet.addRow(ResultSet.java:63) ~[main/:na]
        at org.apache.cassandra.cql3.statements.Selection$ResultSetBuilder.build(Selection.java:355) ~[main/:na]
        at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1226) ~[main/:na]
        at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:299) ~[main/:na]
        at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:238) ~[main/:na]
        at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:67) ~[main/:na]
        at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:238) ~[main/:na]
        at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:260) ~[main/:na]
        at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:119) ~[main/:na]
        at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [main/:na]
        at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [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:511) [na:1.8.0_45]
        at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.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_45]
{code}


This issue also presents on the head of the 2.2 branch and on 2.0.16. However, the prior behaviour is different on both of those branches.
In the 2.0 line prior to CASSANDRA-9532, duplicate columns would actually be included in the results, as opposed to being silently dropped as per 2.1.x
In 2.2, the assertion error seen above precedes CASSANDRA-9532 and is also triggered for both aliased and unaliased duplicate columns.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)