Skip commit log and saved cache directories in SSTable version startup check
Patch by Carl Yeksigian; reviewed by Sam Tunnicliffe for CASSANDRA-10902 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9dafa438 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9dafa438 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9dafa438 Branch: refs/heads/cassandra-3.3 Commit: 9dafa438a5dcce8674aaa945b1495e70f95d2839 Parents: f845283 Author: Carl Yeksigian <c...@apache.org> Authored: Fri Dec 18 10:59:44 2015 -0500 Committer: Sam Tunnicliffe <s...@beobal.com> Committed: Tue Jan 5 10:19:38 2016 +0000 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StartupChecks.java | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9dafa438/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index bb5909c..3c919c7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.5 + * Skip commit log and saved cache directories in SSTable version startup check (CASSANDRA-10902) * drop/alter user should be case sensitive (CASSANDRA-10817) * jemalloc detection fails due to quoting issues in regexv (CASSANDRA-10946) * Support counter-columns for native aggregates (sum,avg,max,min) (CASSANDRA-9977) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9dafa438/src/java/org/apache/cassandra/service/StartupChecks.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/StartupChecks.java b/src/java/org/apache/cassandra/service/StartupChecks.java index c13b401..19f32b6 100644 --- a/src/java/org/apache/cassandra/service/StartupChecks.java +++ b/src/java/org/apache/cassandra/service/StartupChecks.java @@ -36,6 +36,7 @@ import org.apache.cassandra.db.*; import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.exceptions.StartupException; import org.apache.cassandra.io.sstable.Descriptor; +import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.utils.*; /** @@ -233,6 +234,10 @@ public class StartupChecks public void execute() throws StartupException { final Set<String> invalid = new HashSet<>(); + final Set<String> nonSSTablePaths = new HashSet<>(); + nonSSTablePaths.add(FileUtils.getCanonicalPath(DatabaseDescriptor.getCommitLogLocation())); + nonSSTablePaths.add(FileUtils.getCanonicalPath(DatabaseDescriptor.getSavedCachesLocation())); + FileVisitor<Path> sstableVisitor = new SimpleFileVisitor<Path>() { public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException @@ -255,7 +260,9 @@ public class StartupChecks public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { String name = dir.getFileName().toString(); - return (name.equals("snapshots") || name.equals("backups")) + return (name.equals("snapshots") + || name.equals("backups") + || nonSSTablePaths.contains(dir.toFile().getCanonicalPath())) ? FileVisitResult.SKIP_SUBTREE : FileVisitResult.CONTINUE; }