You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "graham sanderson (JIRA)" <ji...@apache.org> on 2014/06/26 22:53:24 UTC

[jira] [Commented] (CASSANDRA-7455) AssertionError with static columns

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

graham sanderson commented on CASSANDRA-7455:
---------------------------------------------

I was going to turn this down to minor, but it is probably worth understanding the exact path that causes this because users might easily get bitten... though if it requires an empty partition key then maybe that is less of an issue

> AssertionError with static columns
> ----------------------------------
>
>                 Key: CASSANDRA-7455
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7455
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: graham sanderson
>
> Depending on how you insert static column values, regular values (and implicitly static column row markers and regular column rows markers), you can cause an AssertionError on select (collision between some of the empty composite name fragments) if you have an empty partition key
> Example:
> {code}
> cqlsh:test> create table select_error(pkey text, ckey text, value text, static_value text static, PRIMARY KEY(pkey, ckey));
> cqlsh:test> insert into select_error(pkey, static_value) VALUES('partition1', 'static value');
> cqlsh:test> insert into select_error(pkey, ckey, value) VALUES('partition1', '', 'value');
> cqlsh:test> select * from select_error;
> TSocket read 0 bytes
> {code}
> Causes
> {code}
> java.lang.AssertionError
> 	at org.apache.cassandra.cql3.statements.ColumnGroupMap.add(ColumnGroupMap.java:64)
> 	at org.apache.cassandra.cql3.statements.ColumnGroupMap.access$200(ColumnGroupMap.java:32)
> 	at org.apache.cassandra.cql3.statements.ColumnGroupMap$Builder.add(ColumnGroupMap.java:151)
> 	at org.apache.cassandra.cql3.statements.SelectStatement.processColumnFamily(SelectStatement.java:1202)
> 	at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:1078)
> 	at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:280)
> 	at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:257)
> 	at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:222)
> 	at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:60)
> 	at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:158)
> 	at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:175)
> 	at org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1958)
> 	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4486)
> 	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4470)
> 	at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
> 	at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
> 	at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:201)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:744)
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)