You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2016/08/30 15:38:31 UTC
[3/6] cassandra git commit: Fail repair on non-existing table
Fail repair on non-existing table
Patch by Masataka Yamaguchi; Reviewed by Paulo Motta for CASSANDRA-12279
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/acd46ab7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/acd46ab7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/acd46ab7
Branch: refs/heads/trunk
Commit: acd46ab7c4e185e474026a0bfecdd2c5e77bf46d
Parents: 5f6a124
Author: Masataka Yamaguchi <p-...@yahoo-corp.jp>
Authored: Wed Aug 24 17:15:41 2016 +0900
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Tue Aug 30 16:31:41 2016 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../apache/cassandra/repair/RepairRunnable.java | 18 ++++++++++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/acd46ab7/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 001a389..74c44f8 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.2.8
+ * Fail repair on non-existing table (CASSANDRA-12279)
* cqlsh copy: fix missing counter values (CASSANDRA-12476)
* Move migration tasks to non-periodic queue, assure flush executor shutdown after non-periodic executor (CASSANDRA-12251)
* cqlsh copy: fixed possible race in initializing feeding thread (CASSANDRA-11701)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/acd46ab7/src/java/org/apache/cassandra/repair/RepairRunnable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/repair/RepairRunnable.java b/src/java/org/apache/cassandra/repair/RepairRunnable.java
index f92310b..0f2e839 100644
--- a/src/java/org/apache/cassandra/repair/RepairRunnable.java
+++ b/src/java/org/apache/cassandra/repair/RepairRunnable.java
@@ -102,7 +102,7 @@ public class RepairRunnable extends WrappedRunnable implements ProgressEventNoti
protected void fireErrorAndComplete(String tag, int progressCount, int totalProgress, String message)
{
fireProgressEvent(tag, new ProgressEvent(ProgressEventType.ERROR, progressCount, totalProgress, message));
- fireProgressEvent(tag, new ProgressEvent(ProgressEventType.COMPLETE, progressCount, totalProgress));
+ fireProgressEvent(tag, new ProgressEvent(ProgressEventType.COMPLETE, progressCount, totalProgress, String.format("Repair command #%d finished with error", cmd)));
}
protected void runMayThrow() throws Exception
@@ -112,11 +112,21 @@ public class RepairRunnable extends WrappedRunnable implements ProgressEventNoti
final String tag = "repair:" + cmd;
final AtomicInteger progress = new AtomicInteger();
- final int totalProgress = 3 + options.getRanges().size(); // calculate neighbors, validation, prepare for repair + number of ranges to repair
+ final int totalProgress = 4 + options.getRanges().size(); // get valid column families, calculate neighbors, validation, prepare for repair + number of ranges to repair
String[] columnFamilies = options.getColumnFamilies().toArray(new String[options.getColumnFamilies().size()]);
- Iterable<ColumnFamilyStore> validColumnFamilies = storageService.getValidColumnFamilies(false, false, keyspace,
- columnFamilies);
+ Iterable<ColumnFamilyStore> validColumnFamilies;
+ try
+ {
+ validColumnFamilies = storageService.getValidColumnFamilies(false, false, keyspace, columnFamilies);
+ progress.incrementAndGet();
+ }
+ catch (IllegalArgumentException e)
+ {
+ logger.error("Repair failed:", e);
+ fireErrorAndComplete(tag, progress.get(), totalProgress, e.getMessage());
+ return;
+ }
final long startTime = System.currentTimeMillis();
String message = String.format("Starting repair command #%d, repairing keyspace %s with %s", cmd, keyspace,