Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A5AC5174D1 for ; Tue, 17 Nov 2015 09:19:00 +0000 (UTC) Received: (qmail 42829 invoked by uid 500); 17 Nov 2015 09:19:00 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 42790 invoked by uid 500); 17 Nov 2015 09:19:00 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 42761 invoked by uid 99); 17 Nov 2015 09:19:00 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 17 Nov 2015 09:19:00 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5ECD6DFE2E; Tue, 17 Nov 2015 09:19:00 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: marcuse@apache.org To: commits@cassandra.apache.org Date: Tue, 17 Nov 2015 09:19:00 -0000 Message-Id: <75e054e797d140be885c7c5fd6d0d2fe@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/4] cassandra git commit: Reject incremental repair requests combined with subrange repair Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 c0480d8bb -> eb8afb71f Reject incremental repair requests combined with subrange repair Patch by Ariel Weisberg; reviewed by marcuse for CASSANDRA-10422 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a8e8a673 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a8e8a673 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a8e8a673 Branch: refs/heads/cassandra-3.0 Commit: a8e8a67306c0b26b8fe9c74a1fb00bacfa224cf7 Parents: 7e056fa Author: Ariel Weisberg Authored: Thu Oct 29 12:36:32 2015 -0400 Committer: Marcus Eriksson Committed: Tue Nov 17 09:57:15 2015 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StorageService.java | 3 +++ .../org/apache/cassandra/service/StorageServiceServerTest.java | 6 ++++++ 3 files changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 2eeda94..b6b394a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.12 + * Reject incremental repair with subrange repair (CASSANDRA-10422) * Add a nodetool command to refresh size_estimates (CASSANDRA-9579) * Shutdown compaction in drain to prevent leak (CASSANDRA-10079) * Invalidate cache after stream receive task is completed (CASSANDRA-10341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/src/java/org/apache/cassandra/service/StorageService.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 665ce3a..03c1960 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -2830,6 +2830,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE public int forceRepairRangeAsync(String beginToken, String endToken, String keyspaceName, boolean isSequential, boolean isLocal, boolean fullRepair, String... columnFamilies) { + if (!fullRepair) + throw new IllegalArgumentException("Incremental repair can't be requested with subrange repair because " + + "each subrange repair would generate an anti-compacted table"); Collection> repairingRange = createRepairRangeFrom(beginToken, endToken); logger.info("starting user-requested repair of range {} for keyspace {} and column families {}", http://git-wip-us.apache.org/repos/asf/cassandra/blob/a8e8a673/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java index dd25b35..564239b 100644 --- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java +++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java @@ -508,4 +508,10 @@ public class StorageServiceServerTest repairRangeFrom = StorageService.instance.createRepairRangeFrom("2000", "2000"); assert repairRangeFrom.size() == 0; } + + @Test(expected=IllegalArgumentException.class) + public void testIncrementalRepairWithSubrangesThrows() throws Exception + { + StorageService.instance.forceRepairRangeAsync("", "", "", true, true, false, ""); + } }