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

Assertion on MmappedSegmentedFile.floor doesn't tell us the path (filename)

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Low
    • Resolution: Fixed
    • 1.2.12, 2.0.3
    • None
    • None

    Description

      for whatever reason (hardware failure, excess load, etc), we get this:

      ERROR [MutationStage:10] 2013-10-25 08:54:03,150 AbstractCassandraDaemon.java (line 132) Exception in thread Thread[MutationStage:10,5,main]
      java.lang.AssertionError: 1711300 vs 974637
      at org.apache.cassandra.io.util.MmappedSegmentedFile.floor(MmappedSegmentedFile.java:62)
      at org.apache.cassandra.io.util.MmappedSegmentedFile.getSegment(MmappedSegmentedFile.java:77)
      at org.apache.cassandra.io.sstable.SSTableReader.getFileDataInput(SSTableReader.java:900)
      at org.apache.cassandra.db.columniterator.SSTableNamesIterator.<init>(SSTableNamesIterator.java:63)
      at org.apache.cassandra.db.filter.NamesQueryFilter.getSSTableColumnIterator(NamesQueryFilter.java:61)
      at org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:79)
      at org.apache.cassandra.db.CollationController.collectTimeOrderedData(CollationController.java:124)
      at org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64)
      at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1362)
      at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1224)
      at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1154)
      at org.apache.cassandra.db.Table.readCurrentIndexedColumns(Table.java:514)
      at org.apache.cassandra.db.Table.apply(Table.java:452)
      at org.apache.cassandra.db.Table.apply(Table.java:384)
      at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:294)
      at org.apache.cassandra.db.RowMutationVerbHandler.doVerb(RowMutationVerbHandler.java:51)
      at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:59)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
      at java.lang.Thread.run(Thread.java:662)

      But the assertion error doesn't tell us the SSTable that is having the problem. So it doesn't really help us. I think we can simply append the assert error log msg with the this.path to show the filename of the problematic file.

      I would also suggest make "1711300 vs 974637" more clear...

      Attachments

        Activity

          People

            jbellis Jonathan Ellis
            cywjackson Jackson Chung
            Jonathan Ellis
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: