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

Assertion Error for Column Deletes When Clustering Not Fully Specified

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Normal
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: Legacy/CQL
    • Labels:
      None
    • Severity:
      Normal

      Description

      CQL commands that delete individual columns with a not fully specified clustering key return an AssertionError to the client. For example, consider the table tbl with three int columns A, B, and C; primary key (A, B); and the command DELETE C from tbl where A = 1.

      On the server side, the stacktrace (in 2.1) is

      java.lang.AssertionError: null
      	at org.apache.cassandra.db.composites.CompoundSparseCellNameType.create(CompoundSparseCellNameType.java:147) ~[main/:na]
      	at org.apache.cassandra.db.composites.CompoundSparseCellNameType.create(CompoundSparseCellNameType.java:139) ~[main/:na]
      	at org.apache.cassandra.cql3.Constants$Deleter.execute(Constants.java:369) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.DeleteStatement.addUpdateForKey(DeleteStatement.java:76) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.ModificationStatement.getMutations(ModificationStatement.java:739) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:525) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:513) ~[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:122) ~[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_102]
      	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_102]
      ERROR [SharedPool-Worker-1] 2016-09-30 13:38:29,236 Message.java:538 - Unexpected exception during request; channel = [id: 0xb84f3bbe, /127.0.0.1:49812 => /127.0.0.1:9042]
      java.lang.AssertionError: null
      	at org.apache.cassandra.db.composites.CompoundSparseCellNameType.create(CompoundSparseCellNameType.java:147) ~[main/:na]
      	at org.apache.cassandra.db.composites.CompoundSparseCellNameType.create(CompoundSparseCellNameType.java:139) ~[main/:na]
      	at org.apache.cassandra.cql3.Constants$Deleter.execute(Constants.java:369) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.DeleteStatement.addUpdateForKey(DeleteStatement.java:76) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.ModificationStatement.getMutations(ModificationStatement.java:739) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.ModificationStatement.executeWithoutCondition(ModificationStatement.java:525) ~[main/:na]
      	at org.apache.cassandra.cql3.statements.ModificationStatement.execute(ModificationStatement.java:513) ~[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:122) ~[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_102]
      	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_102]
      

      This is fixed in 3.0+ by CASSANDRA-10739.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jkni Joel Knighton
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: