You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Tyler Hobbs (JIRA)" <ji...@apache.org> on 2014/05/21 02:15:39 UTC

[jira] [Created] (CASSANDRA-7275) Errors in FlushRunnable may leave threads hung

Tyler Hobbs created CASSANDRA-7275:
--------------------------------------

             Summary: Errors in FlushRunnable may leave threads hung
                 Key: CASSANDRA-7275
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7275
             Project: Cassandra
          Issue Type: Bug
          Components: Core
            Reporter: Tyler Hobbs
            Priority: Critical
             Fix For: 2.0.8


In Memtable.FlushRunnable, the CountDownLatch will never be counted down if there are errors, which results in hanging any threads that are waiting for the flush to complete.  For example, an error like this causes the problem:

{noformat}
ERROR [FlushWriter:474] 2014-05-20 12:10:31,137 CassandraDaemon.java (line 198) Exception in thread Thread[FlushWriter:474,5,main]
java.lang.IllegalArgumentException
    at java.nio.Buffer.position(Unknown Source)
    at org.apache.cassandra.db.marshal.AbstractCompositeType.getBytes(AbstractCompositeType.java:64)
    at org.apache.cassandra.db.marshal.AbstractCompositeType.getWithShortLength(AbstractCompositeType.java:72)
    at org.apache.cassandra.db.marshal.AbstractCompositeType.split(AbstractCompositeType.java:138)
    at org.apache.cassandra.io.sstable.ColumnNameHelper.minComponents(ColumnNameHelper.java:103)
    at org.apache.cassandra.db.ColumnFamily.getColumnStats(ColumnFamily.java:439)
    at org.apache.cassandra.io.sstable.SSTableWriter.append(SSTableWriter.java:194)
    at org.apache.cassandra.db.Memtable$FlushRunnable.writeSortedContents(Memtable.java:397)
    at org.apache.cassandra.db.Memtable$FlushRunnable.runWith(Memtable.java:350)
    at org.apache.cassandra.io.util.DiskAwareRunnable.runMayThrow(DiskAwareRunnable.java:48)
    at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)