[ 
https://issues.apache.org/jira/browse/CASSANDRA-16656?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Norbert Schultz updated CASSANDRA-16656:
----------------------------------------
    Description: 
If there is an invalid ALTER TABLE statement (extra comma), then Cassandra 
responds with an assertion error.

 

This happens on 3.11.10 but not on 4.0-rc1

This statement fails:
{code:java}
> cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh> CREATE KEYSPACE foo WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
cqlsh> use foo;
cqlsh:foo> create table test(id INT, PRIMARY KEY(id));
cqlsh:foo> alter table test ADD (x INT, y INT,);
ServerError: java.lang.AssertionError
{code}

The following can be found inside the Log:

{code}
java.lang.AssertionError: null
        at 
org.apache.cassandra.cql3.statements.AlterTableStatementColumn.<init>(AlterTableStatementColumn.java:36)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.Cql_Parser.alterTableStatement(Cql_Parser.java:5820) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.Cql_Parser.cqlStatement(Cql_Parser.java:628) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at org.apache.cassandra.cql3.CqlParser.cqlStatement(CqlParser.java:604) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at org.apache.cassandra.cql3.CqlParser.query(CqlParser.java:344) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:76)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:589)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:559) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:247) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:241) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:116)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:685)
 [apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:591)
 [apache-cassandra-3.11.10.jar:3.11.10]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
~[na:1.8.0_292]
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:113) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_292]
{code}

Cassandra 4.0-rc1 responds as expected:
{code}
cqlsh:foo> alter table test ADD (x INT, y INT,);
SyntaxException: line 1:35 no viable alternative at input ')' (...(x INT, y 
INT,[)]...)
{code}

  was:
If there is an invalid ALTER TABLE statement (extra comma), then Cassandra 
responds with an assertion error.

 

This happens on 3.11.10 but not on 4.0-rc1

This statement fails:
{code:java}
> cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh> CREATE KEYSPACE foo WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
cqlsh> use foo;
cqlsh:foo> create table test(id INT, PRIMARY KEY(id));
cqlsh:foo> alter table test ADD (x INT, y INT,);
ServerError: java.lang.AssertionError
{code}

The following can be found inside the Log:

{code}
java.lang.AssertionError: null
        at 
org.apache.cassandra.cql3.statements.AlterTableStatementColumn.<init>(AlterTableStatementColumn.java:36)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.Cql_Parser.alterTableStatement(Cql_Parser.java:5820) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.Cql_Parser.cqlStatement(Cql_Parser.java:628) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at org.apache.cassandra.cql3.CqlParser.cqlStatement(CqlParser.java:604) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at org.apache.cassandra.cql3.CqlParser.query(CqlParser.java:344) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:76)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:589)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:559) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:247) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:241) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:116)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:685)
 [apache-cassandra-3.11.10.jar:3.11.10]
        at 
org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:591)
 [apache-cassandra-3.11.10.jar:3.11.10]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
~[na:1.8.0_292]
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
 ~[apache-cassandra-3.11.10.jar:3.11.10]
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:113) 
~[apache-cassandra-3.11.10.jar:3.11.10]
        at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_292]
{code}


> Assertion Error on invalid ALTER TABLE Command
> ----------------------------------------------
>
>                 Key: CASSANDRA-16656
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16656
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CQL/Syntax
>            Reporter: Norbert Schultz
>            Priority: Low
>
> If there is an invalid ALTER TABLE statement (extra comma), then Cassandra 
> responds with an assertion error.
>  
> This happens on 3.11.10 but not on 4.0-rc1
> This statement fails:
> {code:java}
> > cqlsh
> Connected to Test Cluster at 127.0.0.1:9042.
> [cqlsh 5.0.1 | Cassandra 3.11.10 | CQL spec 3.4.4 | Native protocol v4]
> Use HELP for help.
> cqlsh> CREATE KEYSPACE foo WITH REPLICATION = { 'class' : 'SimpleStrategy', 
> 'replication_factor' : 1 };
> cqlsh> use foo;
> cqlsh:foo> create table test(id INT, PRIMARY KEY(id));
> cqlsh:foo> alter table test ADD (x INT, y INT,);
> ServerError: java.lang.AssertionError
> {code}
> The following can be found inside the Log:
> {code}
> java.lang.AssertionError: null
>       at 
> org.apache.cassandra.cql3.statements.AlterTableStatementColumn.<init>(AlterTableStatementColumn.java:36)
>  ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.cql3.Cql_Parser.alterTableStatement(Cql_Parser.java:5820)
>  ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.cql3.Cql_Parser.cqlStatement(Cql_Parser.java:628) 
> ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at org.apache.cassandra.cql3.CqlParser.cqlStatement(CqlParser.java:604) 
> ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at org.apache.cassandra.cql3.CqlParser.query(CqlParser.java:344) 
> ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.cql3.CQLFragmentParser.parseAnyUnhandled(CQLFragmentParser.java:76)
>  ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:589)
>  ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:559)
>  ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:247) 
> ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:241) 
> ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:116)
>  ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.transport.Message$Dispatcher.processRequest(Message.java:685)
>  [apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> org.apache.cassandra.transport.Message$Dispatcher.lambda$channelRead0$0(Message.java:591)
>  [apache-cassandra-3.11.10.jar:3.11.10]
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
> ~[na:1.8.0_292]
>       at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
>  ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:113) 
> ~[apache-cassandra-3.11.10.jar:3.11.10]
>       at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_292]
> {code}
> Cassandra 4.0-rc1 responds as expected:
> {code}
> cqlsh:foo> alter table test ADD (x INT, y INT,);
> SyntaxException: line 1:35 no viable alternative at input ')' (...(x INT, y 
> INT,[)]...)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to