Erik Forsberg created CASSANDRA-8905:
----------------------------------------
Summary: IllegalArgumentException in compaction (with small
sstables?)
Key: CASSANDRA-8905
URL: https://issues.apache.org/jira/browse/CASSANDRA-8905
Project: Cassandra
Issue Type: Bug
Reporter: Erik Forsberg
After upgrade from 1.2.18 to 2.0.12, I've started to get exceptions like:
{noformat}
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)
{noformat}
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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)