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

Clustering Key with ByteBuffer size > 64k throws Assertion Error

    XMLWordPrintableJSON

Details

    • Normal

    Description

      Setup:

      CREATE KEYSPACE Blues WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 2};
      CREATE TABLE test (a text, b text, PRIMARY KEY ((a), b))
      

      There currently doesn't seem to be an existing check for selecting clustering keys that are larger than 64k. So if we proceed to do the following select:

      CONSISTENCY ALL;
      SELECT * FROM Blues.test WHERE a = 'foo' AND b = 'something larger than 64k';
      

      An AssertionError is thrown in `ByteBufferUtil` with just a number and an error message detailing 'Coordinator node timed out waiting for replica nodes responses' . Additionally, because an error extends Throwable (it's not a subclass of Exception), it's not caught so the connection between the coordinator node and the other nodes which have the replicas seem to be 'stuck' until it's restarted. Any other subsequent queries, even if it's just SELECT where a = 'foo' and b = 'bar', will always return the Coordinator timing out waiting for replica nodes responses'.

      Attachments

        1. 11882-3.X.txt
          11 kB
          Lerh Chuan Low
        2. 11882-2.2.txt
          8 kB
          Lerh Chuan Low
        3. 11882-2.1.txt
          9 kB
          Lerh Chuan Low

        Issue Links

          Activity

            People

              Lerh Low Lerh Chuan Low
              Lerh Low Lerh Chuan Low
              Lerh Chuan Low
              Branimir Lambov
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: