Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 9449a7016 -> e4072cf09


Don't include tmp files in offline relevel

Patch by marcuse; reviewed by carlyeks for CASSANDRA-9088


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67038a32
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67038a32
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67038a32

Branch: refs/heads/cassandra-2.1
Commit: 67038a32e118c6a8a0a9de50c8c099b85ccd7b07
Parents: 2e6492a
Author: Marcus Eriksson <marc...@apache.org>
Authored: Wed Apr 1 17:28:50 2015 +0200
Committer: Marcus Eriksson <marc...@apache.org>
Committed: Fri Apr 3 20:53:23 2015 +0200

----------------------------------------------------------------------
 CHANGES.txt                                         |  1 +
 .../cassandra/tools/SSTableOfflineRelevel.java      | 16 +++++++++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/67038a32/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index c569de5..28f79f9 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.15:
+ * Don't include tmp files when doing offline relevel (CASSANDRA-9088)
  * Use the proper CAS WriteType when finishing a previous round during Paxos
    preparation (CASSANDRA-8672)
  * Avoid race in cancelling compactions (CASSANDRA-9070)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/67038a32/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java 
b/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java
index 3fb2f7a..6293faa 100644
--- a/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java
+++ b/src/java/org/apache/cassandra/tools/SSTableOfflineRelevel.java
@@ -28,6 +28,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.google.common.base.Throwables;
+
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.DecoratedKey;
@@ -93,12 +95,20 @@ public class SSTableOfflineRelevel
         Keyspace.openWithoutSSTables(keyspace);
         Directories directories = Directories.create(keyspace, columnfamily);
         Set<SSTableReader> sstables = new HashSet<>();
-        for (Map.Entry<Descriptor, Set<Component>> sstable : 
directories.sstableLister().list().entrySet())
+        for (Map.Entry<Descriptor, Set<Component>> sstable : 
directories.sstableLister().skipTemporary(true).list().entrySet())
         {
             if (sstable.getKey() != null)
             {
-                SSTableReader reader = SSTableReader.open(sstable.getKey());
-                sstables.add(reader);
+                try
+                {
+                    SSTableReader reader = 
SSTableReader.open(sstable.getKey());
+                    sstables.add(reader);
+                }
+                catch (Throwable t)
+                {
+                    out.println("Couldn't open sstable: 
"+sstable.getKey().filenameFor(Component.DATA));
+                    Throwables.propagate(t);
+                }
             }
         }
         if (sstables.isEmpty())

Reply via email to