I think I found the culprit. A new maven dependency was added to my build that created a runtime issue. The exception hit during compaction and open files were not closed. Since the compaction failed, another task was scheduled, running into the same problem.. repeat.
I can buy the argument that this is user error, but it feels like Cassandra should be a bit more defensive with open files in this background task. Should I file a ticket?
2014-10-06--07-05-20-466 [CompactionExecutor:10] ERROR org.apache.cassandra.service.CassandraDaemon - Exception in thread Thread[CompactionExecutor:10,1,main]
java.lang.NoSuchMethodError: com.google.common.util.concurrent.RateLimiter.acquire(I)V
at org.apache.cassandra.io.compress.CompressedThrottledReader.reBuffer(CompressedThrottledReader.java:40) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.io.util.RandomAccessReader.seek(RandomAccessReader.java:283) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.computeNext(SSTableScanner.java:262) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.io.sstable.SSTableScanner$KeyScanningIterator.computeNext(SSTableScanner.java:203) ~[cassandra-all-2.0.10.jar:2.0.10]
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) ~[guava-18.0.jar:na]
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) ~[guava-18.0.jar:na]
at org.apache.cassandra.io.sstable.SSTableScanner.hasNext(SSTableScanner.java:183) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.utils.MergeIterator$Candidate.advance(MergeIterator.java:144) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.utils.MergeIterator$ManyToOne.<init>(MergeIterator.java:87) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.utils.MergeIterator.get(MergeIterator.java:46) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.db.compaction.CompactionIterable.iterator(CompactionIterable.java:47) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.db.compaction.CompactionTask.runWith(CompactionTask.java:129) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:60) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:59) ~[cassandra-all-2.0.10.jar:2.0.10]
at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:198) ~[cassandra-all-2.0.10.jar:2.0.10]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_45]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
Thanks!