You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jeremiah Jordan (JIRA)" <ji...@apache.org> on 2014/08/19 23:19:18 UTC

[jira] [Created] (CASSANDRA-7798) Empty clustering column not caught for CQL3 update to compact storage counter table

Jeremiah Jordan created CASSANDRA-7798:
------------------------------------------

             Summary: Empty clustering column not caught for CQL3 update to compact storage counter table
                 Key: CASSANDRA-7798
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7798
             Project: Cassandra
          Issue Type: Bug
          Components: Core
            Reporter: Jeremiah Jordan
            Assignee: Aleksey Yeschenko


If you update a compact storage counter column through cql3 you can set an empty column name, which is invalid.  The server catches this for normal tables, but misses it for counters, and you end up with an assertion when the  mutation gets serialized.

{noformat}
CREATE TABLE nullcoltest (
  key text,
  column1 text,
  value counter,
  PRIMARY KEY (key, column1)
) WITH COMPACT STORAGE;

UPDATE nullcoltest SET value = value + 1 WHERE key = 'k1' AND column1 = '';
{noformat}

{noformat}
ERROR [COMMIT-LOG-WRITER] 2014-08-19 16:11:12,179 CassandraDaemon.java (line 199) Exception in thread Thread[COMMIT-LOG-WRITER,5,main]
java.lang.AssertionError
	at org.apache.cassandra.db.ColumnSerializer.serialize(ColumnSerializer.java:56)
	at org.apache.cassandra.db.ColumnFamilySerializer.serialize(ColumnFamilySerializer.java:77)
	at org.apache.cassandra.db.RowMutation$RowMutationSerializer.serialize(RowMutation.java:278)
	at org.apache.cassandra.db.commitlog.CommitLogSegment.write(CommitLogSegment.java:264)
	at org.apache.cassandra.db.commitlog.CommitLog$LogRecordAdder.run(CommitLog.java:357)
	at org.apache.cassandra.db.commitlog.PeriodicCommitLogExecutorService$1.runMayThrow(PeriodicCommitLogExecutorService.java:51)
	at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
	at java.lang.Thread.run(Thread.java:744)
{noformat}



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