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

IllegalArgumentException in compaction of -ic- file after upgrade to 2.0.12

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Not A Problem
    • 2.0.15
    • None
    • None
    • Normal

    Description

      After upgrade from 1.2.18 to 2.0.12, I've started to get exceptions like:

      ERROR [CompactionExecutor:1149] 2015-03-04 11:48:46,045 CassandraDaemon.java (line 199) Exception in thread Thread[CompactionExecutor:1149,1,main]
      java.lang.IllegalArgumentException: Illegal Capacity: -2147483648
              at java.util.ArrayList.<init>(ArrayList.java:142)
              at org.apache.cassandra.db.SuperColumns$SCIterator.next(SuperColumns.java:182)
              at org.apache.cassandra.db.SuperColumns$SCIterator.next(SuperColumns.java:194)
              at org.apache.cassandra.db.SuperColumns$SCIterator.next(SuperColumns.java:138)
              at org.apache.cassandra.io.sstable.SSTableIdentityIterator.getColumnFamilyWithColumns(SSTableIdentityIterator.java:186)
              at org.apache.cassandra.db.compaction.PrecompactedRow.merge(PrecompactedRow.java:98)
              at org.apache.cassandra.db.compaction.PrecompactedRow.<init>(PrecompactedRow.java:85)
              at org.apache.cassandra.db.compaction.CompactionController.getCompactedRow(CompactionController.java:196)
              at org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:74)
              at org.apache.cassandra.db.compaction.CompactionIterable$Reducer.getReduced(CompactionIterable.java:55)
              at org.apache.cassandra.utils.MergeIterator$ManyToOne.consume(MergeIterator.java:115)
              at org.apache.cassandra.utils.MergeIterator$ManyToOne.computeNext(MergeIterator.java:98)
              at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
              at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
              at org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:161)
              at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
              at org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60)
              at org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59)
              at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
              at java.util.concurrent.FutureTask.run(FutureTask.java:262)
              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:745)
      
      

      I've identified which sstable is causing this, it's an ic format sstable, i.e. something written before the upgrade. I can repeat with forceUserDefinedCompaction.

      Running upgradesstables also causes the same exception.

      Scrub helps, but skips a row as incorrect.

      I can share the sstable privately if it helps.

      Attachments

        Activity

          People

            Unassigned Unassigned
            forsberg Erik Forsberg
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: