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

NullPointerException in DeletionInfo.isDeleted

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Duplicate
    • None
    • Legacy/CQL
    • None
    • Linux 64 bits

    • Normal

    Description

      The following CQL query:

      select count(*) from messages;
      

      sometimes produces the following stack trace:

      ERROR [SharedPool-Worker-1] 2015-10-31 16:32:22,606 ErrorMessage.java:251 - Unexpected exception during request
      java.lang.NullPointerException: null
      	at org.apache.cassandra.db.DeletionInfo.isDeleted(DeletionInfo.java:138) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.service.pager.RangeSliceQueryPager.containsPreviousLast(RangeSliceQueryPager.java:102) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.service.pager.AbstractQueryPager.fetchPage(AbstractQueryPager.java:119) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.service.pager.RangeSliceQueryPager.fetchPage(RangeSliceQueryPager.java:39) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.cql3.statements.SelectStatement.pageCountQuery(SelectStatement.java:286) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:230) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:67) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:238) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:260) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:122) ~[apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.11.jar:2.1.11]
      	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_51]
      	at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.11.jar:2.1.11]
      	at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.11.jar:2.1.11]
      	at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
      

      After taking a snapshot on all participating nodes, the query starts to apparently succeed.

      The table schema is:

      CREATE TABLE akka.messages (
          persistence_id text,
          partition_nr bigint,
          sequence_nr bigint,
          message blob,
          used boolean static,
          PRIMARY KEY ((persistence_id, partition_nr), sequence_nr)
      ) WITH CLUSTERING ORDER BY (sequence_nr ASC)
          AND bloom_filter_fp_chance = 0.01
          AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
          AND comment = ''
          AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
          AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
          AND dclocal_read_repair_chance = 0.1
          AND default_time_to_live = 0
          AND gc_grace_seconds = 864000
          AND max_index_interval = 2048
          AND memtable_flush_period_in_ms = 0
          AND min_index_interval = 128
          AND read_repair_chance = 0.0
          AND speculative_retry = '99.0PERCENTILE';
      

      (this is from the Akka Cassandra Persistence journal plugin)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              masterzen Brice Figureau
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: