Merge branch 'cassandra-3.0' into cassandra-3.7
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dbf03103 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dbf03103 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dbf03103 Branch: refs/heads/trunk Commit: dbf03103cc72b33b7cc021589255bd492b498907 Parents: c7e086d 7eb4647 Author: T Jake Luciani <j...@apache.org> Authored: Wed Jun 1 16:00:11 2016 -0400 Committer: T Jake Luciani <j...@apache.org> Committed: Wed Jun 1 16:10:51 2016 -0400 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 2 +- src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java | 3 ++- src/java/org/apache/cassandra/tools/StandaloneSSTableUtil.java | 3 ++- 4 files changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbf03103/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 3ecbdf4,0cafa83..a54f4fd --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,8 -1,6 +1,9 @@@ -3.0.7 +3.7 + * Fix race in CompactionStrategyManager's pause/resume (CASSANDRA-11922) +Merged from 3.0: + * Fix Directories instantiations where CFS.initialDirectories should be used (CASSANDRA-11849) * Avoid referencing DatabaseDescriptor in AbstractType (CASSANDRA-11912) + * Don't use static dataDirectories field in Directories instances (CASSANDRA-11647) * Fix sstables not being protected from removal during index build (CASSANDRA-11905) * cqlsh: Suppress stack trace from Read/WriteFailures (CASSANDRA-11032) * Remove unneeded code to repair index summaries that have http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbf03103/src/java/org/apache/cassandra/db/ColumnFamilyStore.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 4ea883e,3264327..f004ae0 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@@ -596,9 -578,9 +596,9 @@@ public class ColumnFamilyStore implemen * Removes unnecessary files from the cf directory at startup: these include temp files, orphans, zero-length files * and compacted sstables. Files that cannot be recognized will be ignored. */ - public static void scrubDataDirectories(CFMetaData metadata) + public static void scrubDataDirectories(CFMetaData metadata) throws StartupException { - Directories directories = new Directories(metadata); + Directories directories = new Directories(metadata, initialDirectories); // clear ephemeral snapshots that were not properly cleared last session (CASSANDRA-7357) clearEphemeralSnapshots(directories); http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbf03103/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java index b441454,b34ca60..bfd9739 --- a/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java +++ b/src/java/org/apache/cassandra/db/lifecycle/LogTransaction.java @@@ -380,22 -379,14 +381,22 @@@ class LogTransaction extends Transactio protected void doPrepare() { } /** - * Called on startup to scan existing folders for any unfinished leftovers of - * operations that were ongoing when the process exited. Also called by the standalone - * sstableutil tool when the cleanup option is specified, @see StandaloneSSTableUtil. + * Removes any leftovers from unifinished transactions as indicated by any transaction log files that + * are found in the table directories. This means that any old sstable files for transactions that were committed, + * or any new sstable files for transactions that were aborted or still in progress, should be removed *if + * it is safe to do so*. Refer to the checks in LogFile.verify for further details on the safety checks + * before removing transaction leftovers and refer to the comments at the beginning of this file or in NEWS.txt + * for further details on transaction logs. + * + * This method is called on startup and by the standalone sstableutil tool when the cleanup option is specified, + * @see StandaloneSSTableUtil. + * + * @return true if the leftovers of all transaction logs found were removed, false otherwise. * */ - static void removeUnfinishedLeftovers(CFMetaData metadata) + static boolean removeUnfinishedLeftovers(CFMetaData metadata) { - return removeUnfinishedLeftovers(new Directories(metadata).getCFDirectories()); - removeUnfinishedLeftovers(new Directories(metadata, ColumnFamilyStore.getInitialDirectories()).getCFDirectories()); ++ return removeUnfinishedLeftovers(new Directories(metadata, ColumnFamilyStore.getInitialDirectories()).getCFDirectories()); } @VisibleForTesting