[ https://issues.apache.org/jira/browse/CASSANDRA-5890?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis resolved CASSANDRA-5890. --------------------------------------- Resolution: Cannot Reproduce > Exception: CorruptSSTableException after nightly 'enqueuing flush' > ------------------------------------------------------------------ > > Key: CASSANDRA-5890 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5890 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: Release: 1.2.5 > 2 Cassandra nodes in a cluster > OS: Ubuntu 12.04.2 LTS > CQL: 3.0.2 > Reporter: Danh Kieu > > The 2 Cassandra nodes have worked well for 2 days. However, after a nightly > 'enqueuing flush' process, a few column families (in all keyspaces) are > corrupted and the following error is observed in log file while trying to > access the CF: > ERROR [ReadStage:413277] 2013-08-14 10:16:13,322 CassandraDaemon.java (line > 175) Exception in thread Thread[ReadStage:413277,5,main] > org.apache.cassandra.io.sstable.CorruptSSTableException: java.io.EOFException > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.<init>(SSTableNamesIterator.java:65) > at > org.apache.cassandra.db.filter.NamesQueryFilter.getSSTableColumnIterator(NamesQueryFilter.java:81) > at > org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:68) > at > org.apache.cassandra.db.CollationController.collectTimeOrderedData(CollationController.java:133) > at > org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:65) > at > org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1357) > at > org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1214) > at > org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1126) > at org.apache.cassandra.db.Table.getRow(Table.java:347) > at > org.apache.cassandra.db.SliceByNamesReadCommand.getRow(SliceByNamesReadCommand.java:64) > at > org.apache.cassandra.db.ReadVerbHandler.doVerb(ReadVerbHandler.java:44) > at > org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:722) > Caused by: java.io.EOFException > at java.io.RandomAccessFile.readFully(RandomAccessFile.java:416) > at java.io.RandomAccessFile.readFully(RandomAccessFile.java:394) > at > org.apache.cassandra.io.util.RandomAccessReader.readBytes(RandomAccessReader.java:380) > at > org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:392) > at > org.apache.cassandra.utils.ByteBufferUtil.readWithShortLength(ByteBufferUtil.java:371) > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.read(SSTableNamesIterator.java:116) > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.<init>(SSTableNamesIterator.java:60) > ... 14 more > ERROR [ReadStage:413292] 2013-08-14 10:16:53,700 CassandraDaemon.java (line > 175) Exception in thread Thread[ReadStage:413292,5,main] > java.lang.AssertionError: DecoratedKey(-8619398030348476976, > 796177616431406d6e75626f2e636f6d) != DecoratedKey(-8430385117828588592, > 79624079622e636f6d) in > /var/lib/cassandra/data/newui/user/newui-user-ic-1-Data.db > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.read(SSTableNamesIterator.java:119) > at > org.apache.cassandra.db.columniterator.SSTableNamesIterator.<init>(SSTableNamesIterator.java:60) > at > org.apache.cassandra.db.filter.NamesQueryFilter.getSSTableColumnIterator(NamesQueryFilter.java:81) > at > org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:68) > at > org.apache.cassandra.db.CollationController.collectTimeOrderedData(CollationController.java:133) > at > org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:65) > at > org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1357) > at > org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1214) > at > org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1126) > at org.apache.cassandra.db.Table.getRow(Table.java:347) > at > org.apache.cassandra.db.SliceByNamesReadCommand.getRow(SliceByNamesReadCommand.java:64) > at > org.apache.cassandra.db.ReadVerbHandler.doVerb(ReadVerbHandler.java:44) > at > org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:722) > Here the traces of the 'enqueuing flush' process: > INFO [OptionalTasks:1] 2013-08-14 04:01:50,586 ColumnFamilyStore.java (line > 631) Enqueuing flush of Memtable-user@848766585(3130/3130 serialized/live > bytes, 96 ops) > INFO [FlushWriter:381] 2013-08-14 04:01:50,632 Memtable.java (line 461) > Writing Memtable-user@848766585(3130/3130 serialized/live bytes, 96 ops) > INFO [FlushWriter:381] 2013-08-14 04:01:50,641 Memtable.java (line 495) > Completed flushing /var/lib/cassandra/data/newui/user/newui-user-ic-1-Data.db > (1513 bytes) for commitlog position ReplayPosition(segmentId=1373063890581, > position=9254) > The issue had happened quite regularly and on a random CF. Please note that > we don't have a lot of data (max 20 records per CF). > We've to run 'nodetool scrub' and 'nodetool repair' to get out of troubles. > Please let me know if this issue is related to a configuration, a bad use of > Cassandra or a real problem. -- This message was sent by Atlassian JIRA (v6.2#6252)