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

java.lang.UnsupportedOperationException when selecting rows with counters

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 3.0.6, 3.6
    • None
    • Ubuntu 16.04 LTS
      Cassandra 3.0.5 Community Edition

    • Normal

    Description

      When selecting a non empty set of rows with counters a exception occurs:

      WARN  [SharedPool-Worker-2] 2016-04-21 23:47:47,542 AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread Thread[SharedPool-Worker-2,5,main]: {}
      java.lang.RuntimeException: java.lang.UnsupportedOperationException
              at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2449) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_45]
              at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:136) [apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-3.0.5.jar:3.0.5]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
      Caused by: java.lang.UnsupportedOperationException: null
              at org.apache.cassandra.db.marshal.AbstractType.compareCustom(AbstractType.java:172) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.marshal.AbstractType.compare(AbstractType.java:158) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.marshal.AbstractType.compareForCQL(AbstractType.java:202) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.cql3.Operator.isSatisfiedBy(Operator.java:169) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.filter.RowFilter$SimpleExpression.isSatisfiedBy(RowFilter.java:619) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.filter.RowFilter$CQLFilter$1IsSatisfiedFilter.applyToRow(RowFilter.java:258) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.transform.BaseRows.applyOne(BaseRows.java:95) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.transform.BaseRows.add(BaseRows.java:86) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.transform.UnfilteredRows.add(UnfilteredRows.java:21) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.transform.Transformation.add(Transformation.java:136) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.transform.Transformation.apply(Transformation.java:102) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.filter.RowFilter$CQLFilter$1IsSatisfiedFilter.applyToPartition(RowFilter.java:246) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.filter.RowFilter$CQLFilter$1IsSatisfiedFilter.applyToPartition(RowFilter.java:236) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.transform.BasePartitions.hasNext(BasePartitions.java:76) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$Serializer.serialize(UnfilteredPartitionIterators.java:295) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.ReadResponse$LocalDataResponse.build(ReadResponse.java:134) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.ReadResponse$LocalDataResponse.<init>(ReadResponse.java:127) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.ReadResponse$LocalDataResponse.<init>(ReadResponse.java:123) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.ReadResponse.createDataResponse(ReadResponse.java:65) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.db.ReadCommand.createResponse(ReadCommand.java:289) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1792) ~[apache-cassandra-3.0.5.jar:3.0.5]
              at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2445) ~[apache-cassandra-3.0.5.jar:3.0.5]
              ... 5 common frames omitted
      
      

      Steps to reproduce:

      arnd@kallisto:~$ cqlsh
      Warning: Timezone defined and 'pytz' module for timezone conversion not installed. Timestamps will be displayed in UTC timezone.
      
      Connected to Test Cluster at 127.0.0.1:9042.
      [cqlsh 5.0.1 | Cassandra 3.0.5 | CQL spec 3.4.0 | Native protocol v4]
      Use HELP for help.
      
      cqlsh>  CREATE KEYSPACE ks_counters WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;
      cqlsh> use ks_counters;
      cqlsh:ks_counters> create table blub (id int, a counter, b counter, PRIMARY KEY (id));
      cqlsh:ks_counters> update blub set a=a+1 where id =1;
      cqlsh:ks_counters> select * from blub;
      
       id | a | b
      ----+---+------
        1 | 1 | null
      
      (1 rows)
      cqlsh:ks_counters> select * from blub where b > 0 allow filtering;
      
       id | a | b
      ----+---+---
      
      (0 rows)
      cqlsh:ks_counters> select * from blub where a > 0 allow filtering;
      Traceback (most recent call last):
        File "/usr/bin/cqlsh.py", line 1316, in perform_simple_statement
          result = future.result()
        File "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0-6af642d/cassandra/cluster.py", line 3122, in result
          raise self._final_exception
      ReadFailure: code=1300 [Replica(s) failed to execute read] message="Operation failed - received 0 responses and 1 failures" info={'failures': 1, 'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}
      
      cqlsh:ks_counters> 
      
      

      Attachments

        Activity

          People

            ifesdjeen Alex Petrov
            arnd Arnd Hannemann
            Alex Petrov
            Sam Tunnicliffe
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: