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...