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

Secondary Indexes fail following a system restart

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 1.2.0 beta 1
    • Feature/2i Index
    • None
    • Single node, trunk

    • Normal

    Description

      Create a new cf with a secondary index, and queries with indexes predicates work fine until the server is restarted, after which they error and the following stacktrace is output to the log:

      java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.nio.ByteBuffer
      	at org.apache.cassandra.dht.LocalToken.compareTo(LocalToken.java:44)
      	at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:88)
      	at org.apache.cassandra.db.DecoratedKey.compareTo(DecoratedKey.java:1)
      	at org.apache.cassandra.utils.IntervalTree.comparePoints(IntervalTree.java:191)
      	at org.apache.cassandra.utils.IntervalTree.contains(IntervalTree.java:203)
      	at org.apache.cassandra.utils.IntervalTree.access$3(IntervalTree.java:201)
      	at org.apache.cassandra.utils.IntervalTree$IntervalNode.searchInternal(IntervalTree.java:293)
      	at org.apache.cassandra.utils.IntervalTree.search(IntervalTree.java:140)
      	at org.apache.cassandra.utils.IntervalTree.search(IntervalTree.java:146)
      	at org.apache.cassandra.db.ColumnFamilyStore.markReferenced(ColumnFamilyStore.java:1259)
      	at org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:229)
      	at org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:65)
      	at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1300)
      	at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1174)
      	at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1104)
      	at org.apache.cassandra.db.index.keys.KeysSearcher$1.computeNext(KeysSearcher.java:144)
      	at org.apache.cassandra.db.index.keys.KeysSearcher$1.computeNext(KeysSearcher.java:1)
      	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:140)
      	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:135)
      	at org.apache.cassandra.db.ColumnFamilyStore.filter(ColumnFamilyStore.java:1409)
      	at org.apache.cassandra.db.index.keys.KeysSearcher.search(KeysSearcher.java:88)
      	at org.apache.cassandra.db.index.SecondaryIndexManager.search(SecondaryIndexManager.java:595)
      	at org.apache.cassandra.db.ColumnFamilyStore.search(ColumnFamilyStore.java:1398)
      	at org.apache.cassandra.service.RangeSliceVerbHandler.executeLocally(RangeSliceVerbHandler.java:47)
      	at org.apache.cassandra.service.StorageProxy.getRangeSlice(StorageProxy.java:870)
      	at org.apache.cassandra.cql3.statements.SelectStatement.multiRangeSlice(SelectStatement.java:259)
      	at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:134)
      	at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:108)
      	at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:121)
      	at org.apache.cassandra.thrift.CassandraServer.execute_cql_query(CassandraServer.java:1236)
      	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:3542)
      	at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql_query.getResult(Cassandra.java:1)
      	at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
      	at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
      	at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:184)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      	at java.lang.Thread.run(Thread.java:662)
      

      Tested with a single node setup & verified that this behaviour is only present in trunk, cassandra-1.0.10 works as expected.

      Attachments

        Issue Links

          Activity

            People

              samt Sam Tunnicliffe
              samt Sam Tunnicliffe
              Sam Tunnicliffe
              Pavel Yaskevich
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: