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)); } });