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

Aleksey Yeschenko commented on CASSANDRA-7455:
----------------------------------------------

LGTM

nit: CompositeType#isStaticName() is a static method, so should probably call 
it directly as that and not via the instance variable. Should also change the 
same call on line 139, while at it.

> AssertionError with static columns
> ----------------------------------
>
>                 Key: CASSANDRA-7455
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7455
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: graham sanderson
>            Assignee: Sylvain Lebresne
>            Priority: Minor
>             Fix For: 2.0.10
>
>         Attachments: 7455.txt
>
>
> 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)

Reply via email to