[ 
https://issues.apache.org/jira/browse/CASSANDRA-8964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14360313#comment-14360313
 ] 

Brandon Williams commented on CASSANDRA-8964:
---------------------------------------------

You may just not have enough file handles, 6442 isn't exactly a lot for LCS.  
The debian packaging, for instance, sets it to unlimited.

> SSTable count rises during compactions and max open files exceeded
> ------------------------------------------------------------------
>
>                 Key: CASSANDRA-8964
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8964
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: Apache Cassandra 2.1.2
> Centos 6
> AWS EC2
> i2.2xlarge
>            Reporter: Anthony Fisk
>            Priority: Critical
>         Attachments: lsof_with_tmp.txt, lsof_without_tmp.txt, 
> nodetool_cfstats.zip
>
>
> LCS compaction was not able to keep up with the prolonged insert load on one 
> of our tables called log, resulting in 2,185 SSTables for that table and 
> 1,779 pending compactions all together during a test we were running.
> We stopped our load, unthrottled compaction throughput, increased the 
> concurrent compactors from 2 to 8, and let it compact the SSTables.
> All was going well until the number of SSTables count for our log table got 
> down to around 97, then began rising again until it had reached 758 SSTables 
> 1.5 hours later... (we've been recording the cfstats output every half hour, 
> [attached|^nodetool_cfstats.zip])
> Eventually we exceeded the number of open files:
> {code}
> ERROR [MemtableFlushWriter:286] 2015-03-12 13:44:36,748 
> CassandraDaemon.java:153 - Exception in thread 
> Thread[MemtableFlushWriter:286,5,main]
> java.lang.RuntimeException: java.io.FileNotFoundException: 
> /mnt/cassandra/data/system/compactions_in_progress-55080ab05d9c388690a4acb25fe1f77b/system-compactions_in_progress-tmp-ka-6618-Index.db
>  (Too many open files)
>         at 
> org.apache.cassandra.io.util.SequentialWriter.<init>(SequentialWriter.java:75)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.util.SequentialWriter.open(SequentialWriter.java:104) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.util.SequentialWriter.open(SequentialWriter.java:99) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.sstable.SSTableWriter$IndexWriter.<init>(SSTableWriter.java:552)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.sstable.SSTableWriter.<init>(SSTableWriter.java:134) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.db.Memtable$FlushRunnable.createFlushWriter(Memtable.java:390)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:329)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:313) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
>  ~[guava-16.0.jar:na]
>         at 
> org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1037)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  ~[na:1.7.0_51]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  ~[na:1.7.0_51]
>         at java.lang.Thread.run(Thread.java:744) ~[na:1.7.0_51]
> Caused by: java.io.FileNotFoundException: 
> /mnt/cassandra/data/system/compactions_in_progress-55080ab05d9c388690a4acb25fe1f77b/system-compactions_in_progress-tmp-ka-6618-Index.db
>  (Too many open files)
>         at java.io.RandomAccessFile.open(Native Method) ~[na:1.7.0_51]
>         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:241) 
> ~[na:1.7.0_51]
>         at 
> org.apache.cassandra.io.util.SequentialWriter.<init>(SequentialWriter.java:71)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         ... 14 common frames omitted
> ERROR [MemtableFlushWriter:286] 2015-03-12 13:44:36,750 
> JVMStabilityInspector.java:94 - JVM state determined to be unstable.  Exiting 
> forcefully due to:
> java.io.FileNotFoundException: 
> /mnt/cassandra/data/system/compactions_in_progress-55080ab05d9c388690a4acb25fe1f77b/system-compactions_in_progress-tmp-ka-6618-Index.db
>  (Too many open files)
>         at java.io.RandomAccessFile.open(Native Method) ~[na:1.7.0_51]
>         at java.io.RandomAccessFile.<init>(RandomAccessFile.java:241) 
> ~[na:1.7.0_51]
>         at 
> org.apache.cassandra.io.util.SequentialWriter.<init>(SequentialWriter.java:71)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.util.SequentialWriter.open(SequentialWriter.java:104) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.util.SequentialWriter.open(SequentialWriter.java:99) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.sstable.SSTableWriter$IndexWriter.<init>(SSTableWriter.java:552)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.sstable.SSTableWriter.<init>(SSTableWriter.java:134) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.db.Memtable$FlushRunnable.createFlushWriter(Memtable.java:390)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:329)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:313) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
> ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
>  ~[guava-16.0.jar:na]
>         at 
> org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1037)
>  ~[apache-cassandra-2.1.2.jar:2.1.2]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  ~[na:1.7.0_51]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  ~[na:1.7.0_51]
>         at java.lang.Thread.run(Thread.java:744) ~[na:1.7.0_51]
> {code}
> I restarted Cassandra and the number of SSTables reduced to 81 before 
> increasing again... Looking at lsof output, it seemed that the file handles 
> for the log table were also continually increasing. It seemed that roughly 
> half of them [were for "tmp" files|^lsof_with_tmp.txt] and the other half 
> [were for the directory of the table|^lsof_without_tmp.txt]. Also of note, it 
> seemed we only had one compactor running on the log table, rather than the 8 
> that we had seen before after changing the configuration and restarting.
> Cassandra eventually crashed again with the same error when it reached 6,442 
> open files (seen in lsof). Without Cassandra running our system has 1,126 
> open files.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to