Carl Yeksigian created CASSANDRA-9255:
-----------------------------------------

             Summary: If a memtable flush fails, possible deadlock for future 
flushes
                 Key: CASSANDRA-9255
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9255
             Project: Cassandra
          Issue Type: Bug
            Reporter: Carl Yeksigian
         Attachments: jstack.txt

If a memtable flush throws and exception, it won't signal the countdown latch 
that the post flush task is waiting on. Since the post flush executor is single 
threaded, it will continue to wait on its countdown latch and will not process 
any additional post flush tasks. After that, any blocking flush will deadlock 
waiting for the post flush task to finish.

I hit this while I was adding tests for CASSANDRA-9057 where the memtable 
failed to write because my validation was wrong and then it deadlocked creating 
a new table, but it should be safeguarded against the possibility that a 
memtable flush fails for any reason.

Attaching the jstack showing the deadlock. 



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

Reply via email to