From 6131273ac6c567579eef9da1237b39ff214ccf52 Mon Sep 17 00:00:00 2001 From: Mikhail Stepura Date: Wed, 11 Jun 2014 15:19:22 -0700 Subject: [PATCH] Move latch.countDown() into "finally" block patch by Mikhail Stepura; reviewed by Tyler Hobbs for CASSANDRA-7275 --- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/Memtable.java | 14 ++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 232a860da9..a645516812 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 1.2.17 + * Errors in FlushRunnable may leave threads hung (CASSANDRA-7275) * reduce failure detector initial value to 2s (CASSANDRA-7307) * Fix problem truncating on a node that was previously in a dead state (CASSANDRA-7318) * Don't insert tombstones that hide indexed values into 2i (CASSANDRA-7268) diff --git a/src/java/org/apache/cassandra/db/Memtable.java b/src/java/org/apache/cassandra/db/Memtable.java index b6fcedaa1a..90f0466652 100644 --- a/src/java/org/apache/cassandra/db/Memtable.java +++ b/src/java/org/apache/cassandra/db/Memtable.java @@ -380,11 +380,17 @@ public class Memtable protected void runWith(File sstableDirectory) throws Exception { - assert sstableDirectory != null : "Flush task is not bound to any disk"; + try + { + assert sstableDirectory != null : "Flush task is not bound to any disk"; - SSTableReader sstable = writeSortedContents(context, sstableDirectory); - cfs.replaceFlushed(Memtable.this, sstable); - latch.countDown(); + SSTableReader sstable = writeSortedContents(context, sstableDirectory); + cfs.replaceFlushed(Memtable.this, sstable); + } + finally + { + latch.countDown(); + } } protected Directories getDirectories()