Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-7455

AssertionError with static columns

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 2.0.10
    • None
    • None
    • Low

    Description

      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:

      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
      

      Causes

      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)
      

      Attachments

        1. 7455.txt
          1.0 kB
          Sylvain Lebresne

        Activity

          People

            slebresne Sylvain Lebresne
            graham sanderson graham sanderson
            Sylvain Lebresne
            Aleksey Yeschenko
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: