From ca224b323975da298c41d4f5f8c7b17d0cd63e0a Mon Sep 17 00:00:00 2001 From: Yuki Morishita Date: Thu, 2 Oct 2014 12:15:22 -0500 Subject: [PATCH] Fix snapshot repair error on indexed tables patch by yukim; reviewed by jbellis for CASSANDRA-8020 --- CHANGES.txt | 1 + .../apache/cassandra/repair/RepairMessageVerbHandler.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 3c3b8382fc..e86ad5bded 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -54,6 +54,7 @@ * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111) * Make repair -pr work with -local (CASSANDRA-7450) * Fix error in sstableloader with -cph > 1 (CASSANDRA-8007) + * Fix snapshot repair error on indexed tables (CASSANDRA-8020) Merged from 2.0: * Fix potential exception when using ReversedType in DynamicCompositeType (CASSANDRA-7898) diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java index 2dac5cdb97..54117a3d92 100644 --- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java +++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java @@ -32,6 +32,7 @@ import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Keyspace; import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.dht.Bounds; +import org.apache.cassandra.dht.LocalPartitioner; import org.apache.cassandra.dht.Range; import org.apache.cassandra.dht.Token; import org.apache.cassandra.io.sstable.SSTableReader; @@ -80,7 +81,9 @@ public class RepairMessageVerbHandler implements IVerbHandler { public boolean apply(SSTableReader sstable) { - return sstable != null && new Bounds<>(sstable.first.getToken(), sstable.last.getToken()).intersects(Collections.singleton(repairingRange)); + return sstable != null && + !(sstable.partitioner instanceof LocalPartitioner) && // exclude SSTables from 2i + new Bounds<>(sstable.first.getToken(), sstable.last.getToken()).intersects(Collections.singleton(repairingRange)); } });