You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ma...@apache.org on 2018/02/09 15:28:21 UTC
[1/6] cassandra git commit: Use the correct digest file and reload
sstable metadata in nodetool verify
Repository: cassandra
Updated Branches:
refs/heads/cassandra-3.0 40148a178 -> 21978bf9b
refs/heads/cassandra-3.11 43aa79d3c -> 6eb65e5a2
refs/heads/trunk a4cf29fe9 -> 161c37da8
Use the correct digest file and reload sstable metadata in nodetool verify
Patch by marcuse; reviewed by Ariel Weisberg for CASSANDRA-14217
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/21978bf9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/21978bf9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/21978bf9
Branch: refs/heads/cassandra-3.0
Commit: 21978bf9bba520c3d7e838ee6b15536d5b807ef4
Parents: 40148a1
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue Feb 6 15:25:07 2018 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Feb 9 15:05:55 2018 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/db/compaction/Verifier.java | 2 +
.../io/util/DataIntegrityMetadata.java | 2 +-
.../org/apache/cassandra/db/VerifyTest.java | 39 ++++++++++++++++++++
.../cassandra/io/sstable/LegacySSTableTest.java | 18 +++++++++
5 files changed, 61 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4e8f2ac..f42f3f4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.16
+ * Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
* Handle failure when mutating repaired status in Verifier (CASSANDRA-13933)
* Close socket on error during connect on OutboundTcpConnection (CASSANDRA-9630)
* Set encoding for javadoc generation (CASSANDRA-14154)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/src/java/org/apache/cassandra/db/compaction/Verifier.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/Verifier.java b/src/java/org/apache/cassandra/db/compaction/Verifier.java
index 86bc377..586c754 100644
--- a/src/java/org/apache/cassandra/db/compaction/Verifier.java
+++ b/src/java/org/apache/cassandra/db/compaction/Verifier.java
@@ -259,6 +259,8 @@ public class Verifier implements Closeable
try
{
sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
}
catch(IOException ioe)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java b/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
index 0a89d74..cbf5753 100644
--- a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
+++ b/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
@@ -110,7 +110,7 @@ public class DataIntegrityMetadata
{
this.descriptor = descriptor;
checksum = descriptor.version.uncompressedChecksumType().newInstance();
- digestReader = RandomAccessReader.open(new File(descriptor.filenameFor(Component.digestFor(descriptor.version.uncompressedChecksumType()))));
+ digestReader = RandomAccessReader.open(new File(descriptor.filenameFor(descriptor.digestComponent)));
dataReader = RandomAccessReader.open(new File(descriptor.filenameFor(Component.DATA)));
try
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/test/unit/org/apache/cassandra/db/VerifyTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/VerifyTest.java b/test/unit/org/apache/cassandra/db/VerifyTest.java
index fc87520..0748270 100644
--- a/test/unit/org/apache/cassandra/db/VerifyTest.java
+++ b/test/unit/org/apache/cassandra/db/VerifyTest.java
@@ -24,6 +24,7 @@ import org.apache.cassandra.OrderedJUnit4ClassRunner;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
import org.apache.cassandra.UpdateBuilder;
+import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.db.compaction.CompactionManager;
import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.db.marshal.UUIDType;
@@ -44,9 +45,14 @@ import org.junit.runner.RunWith;
import java.io.*;
import java.nio.file.Files;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@RunWith(OrderedJUnit4ClassRunner.class)
@@ -368,6 +374,39 @@ public class VerifyTest
}
}
+ @Test
+ public void testMutateRepair() throws IOException, ExecutionException, InterruptedException
+ {
+ CompactionManager.instance.disableAutoCompaction();
+ Keyspace keyspace = Keyspace.open(KEYSPACE);
+ ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CORRUPT_CF2);
+
+ fillCF(cfs, 2);
+
+ SSTableReader sstable = cfs.getLiveSSTables().iterator().next();
+ sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, 1);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
+ assertTrue(sstable.isRepaired());
+ cfs.forceMajorCompaction();
+
+ sstable = cfs.getLiveSSTables().iterator().next();
+ Long correctChecksum;
+ try (RandomAccessFile file = new RandomAccessFile(sstable.descriptor.filenameFor(sstable.descriptor.digestComponent), "rw"))
+ {
+ correctChecksum = Long.parseLong(file.readLine());
+ }
+ writeChecksum(++correctChecksum, sstable.descriptor.filenameFor(sstable.descriptor.digestComponent));
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(false);
+ fail("should be corrupt");
+ }
+ catch (CorruptSSTableException e)
+ {}
+ assertFalse(sstable.isRepaired());
+ }
+
protected void fillCF(ColumnFamilyStore cfs, int partitionsPerSSTable)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
index f4f6e85..ede4ab6 100644
--- a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
@@ -40,6 +40,7 @@ import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.Keyspace;
+import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;
@@ -186,6 +187,23 @@ public class LegacySSTableTest
Assert.assertEquals(5000, rs.size());
}
+ @Test
+ public void verifyOldSSTables() throws Exception
+ {
+ for (String legacyVersion : legacyVersions)
+ {
+ loadLegacyTables(legacyVersion);
+ ColumnFamilyStore cfs = Keyspace.open("legacy_tables").getColumnFamilyStore(String.format("legacy_%s_simple", legacyVersion));
+ for (SSTableReader sstable : cfs.getLiveSSTables())
+ {
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(true);
+ }
+ }
+ }
+ }
+
private void streamLegacyTables(String legacyVersion) throws Exception
{
for (int compact = 0; compact <= 1; compact++)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[2/6] cassandra git commit: Use the correct digest file and reload
sstable metadata in nodetool verify
Posted by ma...@apache.org.
Use the correct digest file and reload sstable metadata in nodetool verify
Patch by marcuse; reviewed by Ariel Weisberg for CASSANDRA-14217
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/21978bf9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/21978bf9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/21978bf9
Branch: refs/heads/cassandra-3.11
Commit: 21978bf9bba520c3d7e838ee6b15536d5b807ef4
Parents: 40148a1
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue Feb 6 15:25:07 2018 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Feb 9 15:05:55 2018 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/db/compaction/Verifier.java | 2 +
.../io/util/DataIntegrityMetadata.java | 2 +-
.../org/apache/cassandra/db/VerifyTest.java | 39 ++++++++++++++++++++
.../cassandra/io/sstable/LegacySSTableTest.java | 18 +++++++++
5 files changed, 61 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4e8f2ac..f42f3f4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.16
+ * Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
* Handle failure when mutating repaired status in Verifier (CASSANDRA-13933)
* Close socket on error during connect on OutboundTcpConnection (CASSANDRA-9630)
* Set encoding for javadoc generation (CASSANDRA-14154)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/src/java/org/apache/cassandra/db/compaction/Verifier.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/Verifier.java b/src/java/org/apache/cassandra/db/compaction/Verifier.java
index 86bc377..586c754 100644
--- a/src/java/org/apache/cassandra/db/compaction/Verifier.java
+++ b/src/java/org/apache/cassandra/db/compaction/Verifier.java
@@ -259,6 +259,8 @@ public class Verifier implements Closeable
try
{
sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
}
catch(IOException ioe)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java b/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
index 0a89d74..cbf5753 100644
--- a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
+++ b/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
@@ -110,7 +110,7 @@ public class DataIntegrityMetadata
{
this.descriptor = descriptor;
checksum = descriptor.version.uncompressedChecksumType().newInstance();
- digestReader = RandomAccessReader.open(new File(descriptor.filenameFor(Component.digestFor(descriptor.version.uncompressedChecksumType()))));
+ digestReader = RandomAccessReader.open(new File(descriptor.filenameFor(descriptor.digestComponent)));
dataReader = RandomAccessReader.open(new File(descriptor.filenameFor(Component.DATA)));
try
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/test/unit/org/apache/cassandra/db/VerifyTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/VerifyTest.java b/test/unit/org/apache/cassandra/db/VerifyTest.java
index fc87520..0748270 100644
--- a/test/unit/org/apache/cassandra/db/VerifyTest.java
+++ b/test/unit/org/apache/cassandra/db/VerifyTest.java
@@ -24,6 +24,7 @@ import org.apache.cassandra.OrderedJUnit4ClassRunner;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
import org.apache.cassandra.UpdateBuilder;
+import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.db.compaction.CompactionManager;
import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.db.marshal.UUIDType;
@@ -44,9 +45,14 @@ import org.junit.runner.RunWith;
import java.io.*;
import java.nio.file.Files;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@RunWith(OrderedJUnit4ClassRunner.class)
@@ -368,6 +374,39 @@ public class VerifyTest
}
}
+ @Test
+ public void testMutateRepair() throws IOException, ExecutionException, InterruptedException
+ {
+ CompactionManager.instance.disableAutoCompaction();
+ Keyspace keyspace = Keyspace.open(KEYSPACE);
+ ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CORRUPT_CF2);
+
+ fillCF(cfs, 2);
+
+ SSTableReader sstable = cfs.getLiveSSTables().iterator().next();
+ sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, 1);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
+ assertTrue(sstable.isRepaired());
+ cfs.forceMajorCompaction();
+
+ sstable = cfs.getLiveSSTables().iterator().next();
+ Long correctChecksum;
+ try (RandomAccessFile file = new RandomAccessFile(sstable.descriptor.filenameFor(sstable.descriptor.digestComponent), "rw"))
+ {
+ correctChecksum = Long.parseLong(file.readLine());
+ }
+ writeChecksum(++correctChecksum, sstable.descriptor.filenameFor(sstable.descriptor.digestComponent));
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(false);
+ fail("should be corrupt");
+ }
+ catch (CorruptSSTableException e)
+ {}
+ assertFalse(sstable.isRepaired());
+ }
+
protected void fillCF(ColumnFamilyStore cfs, int partitionsPerSSTable)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
index f4f6e85..ede4ab6 100644
--- a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
@@ -40,6 +40,7 @@ import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.Keyspace;
+import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;
@@ -186,6 +187,23 @@ public class LegacySSTableTest
Assert.assertEquals(5000, rs.size());
}
+ @Test
+ public void verifyOldSSTables() throws Exception
+ {
+ for (String legacyVersion : legacyVersions)
+ {
+ loadLegacyTables(legacyVersion);
+ ColumnFamilyStore cfs = Keyspace.open("legacy_tables").getColumnFamilyStore(String.format("legacy_%s_simple", legacyVersion));
+ for (SSTableReader sstable : cfs.getLiveSSTables())
+ {
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(true);
+ }
+ }
+ }
+ }
+
private void streamLegacyTables(String legacyVersion) throws Exception
{
for (int compact = 0; compact <= 1; compact++)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Posted by ma...@apache.org.
Merge branch 'cassandra-3.11' into trunk
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/161c37da
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/161c37da
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/161c37da
Branch: refs/heads/trunk
Commit: 161c37da8fa93f572e3c9474cb37fc6d96058ff6
Parents: a4cf29f 6eb65e5
Author: Marcus Eriksson <ma...@apache.org>
Authored: Fri Feb 9 16:26:24 2018 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Feb 9 16:26:24 2018 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/db/compaction/Verifier.java | 2 ++
.../org/apache/cassandra/db/VerifyTest.java | 38 ++++++++++++++++++++
.../cassandra/io/sstable/LegacySSTableTest.java | 18 ++++++++++
4 files changed, 59 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/161c37da/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index e860265,c38b69b..0f7b7fe
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -207,7 -19,9 +207,8 @@@
* Round buffer size to powers of 2 for the chunk cache (CASSANDRA-13897)
* Update jackson JSON jars (CASSANDRA-13949)
* Avoid locks when checking LCS fanout and if we should defrag (CASSANDRA-13930)
- * Correctly count range tombstones in traces and tombstone thresholds (CASSANDRA-8527)
Merged from 3.0:
+ * Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
* Handle failure when mutating repaired status in Verifier (CASSANDRA-13933)
* Set encoding for javadoc generation (CASSANDRA-14154)
* Fix index target computation for dense composite tables with dropped compact storage (CASSANDRA-14104)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/161c37da/src/java/org/apache/cassandra/db/compaction/Verifier.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/compaction/Verifier.java
index 5a2a828,f0309b7..01e465e
--- a/src/java/org/apache/cassandra/db/compaction/Verifier.java
+++ b/src/java/org/apache/cassandra/db/compaction/Verifier.java
@@@ -259,7 -259,9 +259,9 @@@ public class Verifier implements Closea
{
try
{
- sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE);
+ sstable.descriptor.getMetadataSerializer().mutateRepaired(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE, sstable.getSSTableMetadata().pendingRepair);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
}
catch(IOException ioe)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/161c37da/test/unit/org/apache/cassandra/db/VerifyTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/VerifyTest.java
index 2eb741c,a332f74..8b9b437
--- a/test/unit/org/apache/cassandra/db/VerifyTest.java
+++ b/test/unit/org/apache/cassandra/db/VerifyTest.java
@@@ -44,13 -46,14 +45,17 @@@ import org.junit.runner.RunWith
import java.io.*;
import java.nio.file.Files;
+ import java.util.Collections;
-import java.util.List;
+ import java.util.concurrent.ExecutionException;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
+import static org.apache.cassandra.SchemaLoader.counterCFMD;
+import static org.apache.cassandra.SchemaLoader.createKeyspace;
+import static org.apache.cassandra.SchemaLoader.loadSchema;
+import static org.apache.cassandra.SchemaLoader.standardCFMD;
+ import static org.junit.Assert.assertFalse;
+ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@RunWith(OrderedJUnit4ClassRunner.class)
@@@ -375,6 -378,39 +380,39 @@@ public class VerifyTes
}
}
+ @Test
+ public void testMutateRepair() throws IOException, ExecutionException, InterruptedException
+ {
+ CompactionManager.instance.disableAutoCompaction();
+ Keyspace keyspace = Keyspace.open(KEYSPACE);
+ ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CORRUPT_CF2);
+
+ fillCF(cfs, 2);
+
+ SSTableReader sstable = cfs.getLiveSSTables().iterator().next();
- sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, 1);
++ sstable.descriptor.getMetadataSerializer().mutateRepaired(sstable.descriptor, 1, sstable.getSSTableMetadata().pendingRepair);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
+ assertTrue(sstable.isRepaired());
+ cfs.forceMajorCompaction();
+
+ sstable = cfs.getLiveSSTables().iterator().next();
+ Long correctChecksum;
- try (RandomAccessFile file = new RandomAccessFile(sstable.descriptor.filenameFor(sstable.descriptor.digestComponent), "rw"))
++ try (RandomAccessFile file = new RandomAccessFile(sstable.descriptor.filenameFor(Component.DIGEST), "rw"))
+ {
+ correctChecksum = Long.parseLong(file.readLine());
+ }
- writeChecksum(++correctChecksum, sstable.descriptor.filenameFor(sstable.descriptor.digestComponent));
++ writeChecksum(++correctChecksum, sstable.descriptor.filenameFor(Component.DIGEST));
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(false);
+ fail("should be corrupt");
+ }
+ catch (CorruptSSTableException e)
+ {}
+ assertFalse(sstable.isRepaired());
+ }
+
protected void fillCF(ColumnFamilyStore cfs, int partitionsPerSSTable)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/161c37da/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
index 8fc69bf,478327d..f669cd7
--- a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
@@@ -193,19 -167,78 +194,36 @@@ public class LegacySSTableTes
verifyReads(legacyVersion);
}
}
- @Test
- public void testReverseIterationOfLegacyIndexedSSTable() throws Exception
- {
- // During upgrades from 2.1 to 3.0, reverse queries can drop rows before upgradesstables is completed
- QueryProcessor.executeInternal("CREATE TABLE legacy_tables.legacy_ka_indexed (" +
- " p int," +
- " c int," +
- " v1 int," +
- " v2 int," +
- " PRIMARY KEY(p, c)" +
- ")");
- loadLegacyTable("legacy_%s_indexed%s", "ka", "");
- UntypedResultSet rs = QueryProcessor.executeInternal("SELECT * " +
- "FROM legacy_tables.legacy_ka_indexed " +
- "WHERE p=1 " +
- "ORDER BY c DESC");
- Assert.assertEquals(5000, rs.size());
- }
-
- @Test
- public void testReadingLegacyIndexedSSTableWithStaticColumns() throws Exception
- {
- // During upgrades from 2.1 to 3.0, reading from tables with static columns errors before upgradesstables
- // is completed
- QueryProcessor.executeInternal("CREATE TABLE legacy_tables.legacy_ka_indexed_static (" +
- " p int," +
- " c int," +
- " v1 int," +
- " v2 int," +
- " s1 int static," +
- " s2 int static," +
- " PRIMARY KEY(p, c)" +
- ")");
- loadLegacyTable("legacy_%s_indexed_static%s", "ka", "");
- UntypedResultSet rs = QueryProcessor.executeInternal("SELECT * " +
- "FROM legacy_tables.legacy_ka_indexed_static " +
- "WHERE p=1 ");
- Assert.assertEquals(5000, rs.size());
- }
+ @Test
+ public void verifyOldSSTables() throws Exception
+ {
+ for (String legacyVersion : legacyVersions)
+ {
+ loadLegacyTables(legacyVersion);
+ ColumnFamilyStore cfs = Keyspace.open("legacy_tables").getColumnFamilyStore(String.format("legacy_%s_simple", legacyVersion));
+ for (SSTableReader sstable : cfs.getLiveSSTables())
+ {
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(true);
+ }
+ }
+ }
+ }
+
private void streamLegacyTables(String legacyVersion) throws Exception
{
- for (int compact = 0; compact <= 1; compact++)
- {
- logger.info("Streaming legacy version {}{}", legacyVersion, getCompactNameSuffix(compact));
- streamLegacyTable("legacy_%s_simple%s", legacyVersion, getCompactNameSuffix(compact));
- streamLegacyTable("legacy_%s_simple_counter%s", legacyVersion, getCompactNameSuffix(compact));
- streamLegacyTable("legacy_%s_clust%s", legacyVersion, getCompactNameSuffix(compact));
- streamLegacyTable("legacy_%s_clust_counter%s", legacyVersion, getCompactNameSuffix(compact));
- }
+ logger.info("Streaming legacy version {}", legacyVersion);
+ streamLegacyTable("legacy_%s_simple", legacyVersion);
+ streamLegacyTable("legacy_%s_simple_counter", legacyVersion);
+ streamLegacyTable("legacy_%s_clust", legacyVersion);
+ streamLegacyTable("legacy_%s_clust_counter", legacyVersion);
}
- private void streamLegacyTable(String tablePattern, String legacyVersion, String compactNameSuffix) throws Exception
+ private void streamLegacyTable(String tablePattern, String legacyVersion) throws Exception
{
- String table = String.format(tablePattern, legacyVersion, compactNameSuffix);
+ String table = String.format(tablePattern, legacyVersion);
SSTableReader sstable = SSTableReader.open(getDescriptor(legacyVersion, table));
IPartitioner p = sstable.getPartitioner();
List<Range<Token>> ranges = new ArrayList<>();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.11
Posted by ma...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6eb65e5a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6eb65e5a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6eb65e5a
Branch: refs/heads/cassandra-3.11
Commit: 6eb65e5a23d3af30b2ecc1f5ea25c30c3b14e284
Parents: 43aa79d 21978bf
Author: Marcus Eriksson <ma...@apache.org>
Authored: Fri Feb 9 16:20:32 2018 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Feb 9 16:22:02 2018 +0100
----------------------------------------------------------------------
CHANGES.txt | 2 +-
.../cassandra/db/compaction/Verifier.java | 2 +
.../io/util/DataIntegrityMetadata.java | 2 +-
.../org/apache/cassandra/db/VerifyTest.java | 39 ++++++++++++++++++++
.../cassandra/io/sstable/LegacySSTableTest.java | 18 +++++++++
5 files changed, 61 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 4eb03e5,f42f3f4..c38b69b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,28 -1,7 +1,28 @@@
-3.0.16
+3.11.2
+ * Remove dependencies on JVM internal classes from JMXServerUtils (CASSANDRA-14173)
+ * Add DEFAULT, UNSET, MBEAN and MBEANS to `ReservedKeywords` (CASSANDRA-14205)
+ * Add Unittest for schema migration fix (CASSANDRA-14140)
+ * Print correct snitch info from nodetool describecluster (CASSANDRA-13528)
+ * Close socket on error during connect on OutboundTcpConnection (CASSANDRA-9630)
+ * Enable CDC unittest (CASSANDRA-14141)
+ * Acquire read lock before accessing CompactionStrategyManager fields (CASSANDRA-14139)
+ * Split CommitLogStressTest to avoid timeout (CASSANDRA-14143)
+ * Avoid invalidating disk boundaries unnecessarily (CASSANDRA-14083)
+ * Avoid exposing compaction strategy index externally (CASSANDRA-14082)
+ * Prevent continuous schema exchange between 3.0 and 3.11 nodes (CASSANDRA-14109)
+ * Fix imbalanced disks when replacing node with same address with JBOD (CASSANDRA-14084)
+ * Reload compaction strategies when disk boundaries are invalidated (CASSANDRA-13948)
+ * Remove OpenJDK log warning (CASSANDRA-13916)
+ * Prevent compaction strategies from looping indefinitely (CASSANDRA-14079)
+ * Cache disk boundaries (CASSANDRA-13215)
+ * Add asm jar to build.xml for maven builds (CASSANDRA-11193)
+ * Round buffer size to powers of 2 for the chunk cache (CASSANDRA-13897)
+ * Update jackson JSON jars (CASSANDRA-13949)
+ * Avoid locks when checking LCS fanout and if we should defrag (CASSANDRA-13930)
+ * Correctly count range tombstones in traces and tombstone thresholds (CASSANDRA-8527)
-
+Merged from 3.0:
+ * Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
* Handle failure when mutating repaired status in Verifier (CASSANDRA-13933)
- * Close socket on error during connect on OutboundTcpConnection (CASSANDRA-9630)
* Set encoding for javadoc generation (CASSANDRA-14154)
* Fix index target computation for dense composite tables with dropped compact storage (CASSANDRA-14104)
* Improve commit log chain marker updating (CASSANDRA-14108)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/src/java/org/apache/cassandra/db/compaction/Verifier.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/test/unit/org/apache/cassandra/db/VerifyTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/VerifyTest.java
index 6808c47,0748270..a332f74
--- a/test/unit/org/apache/cassandra/db/VerifyTest.java
+++ b/test/unit/org/apache/cassandra/db/VerifyTest.java
@@@ -23,8 -23,8 +23,9 @@@ import com.google.common.base.Charsets
import org.apache.cassandra.OrderedJUnit4ClassRunner;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
+import org.apache.cassandra.cache.ChunkCache;
import org.apache.cassandra.UpdateBuilder;
+ import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.db.compaction.CompactionManager;
import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.db.marshal.UUIDType;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into
cassandra-3.11
Posted by ma...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.11
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6eb65e5a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6eb65e5a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6eb65e5a
Branch: refs/heads/trunk
Commit: 6eb65e5a23d3af30b2ecc1f5ea25c30c3b14e284
Parents: 43aa79d 21978bf
Author: Marcus Eriksson <ma...@apache.org>
Authored: Fri Feb 9 16:20:32 2018 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Feb 9 16:22:02 2018 +0100
----------------------------------------------------------------------
CHANGES.txt | 2 +-
.../cassandra/db/compaction/Verifier.java | 2 +
.../io/util/DataIntegrityMetadata.java | 2 +-
.../org/apache/cassandra/db/VerifyTest.java | 39 ++++++++++++++++++++
.../cassandra/io/sstable/LegacySSTableTest.java | 18 +++++++++
5 files changed, 61 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 4eb03e5,f42f3f4..c38b69b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,28 -1,7 +1,28 @@@
-3.0.16
+3.11.2
+ * Remove dependencies on JVM internal classes from JMXServerUtils (CASSANDRA-14173)
+ * Add DEFAULT, UNSET, MBEAN and MBEANS to `ReservedKeywords` (CASSANDRA-14205)
+ * Add Unittest for schema migration fix (CASSANDRA-14140)
+ * Print correct snitch info from nodetool describecluster (CASSANDRA-13528)
+ * Close socket on error during connect on OutboundTcpConnection (CASSANDRA-9630)
+ * Enable CDC unittest (CASSANDRA-14141)
+ * Acquire read lock before accessing CompactionStrategyManager fields (CASSANDRA-14139)
+ * Split CommitLogStressTest to avoid timeout (CASSANDRA-14143)
+ * Avoid invalidating disk boundaries unnecessarily (CASSANDRA-14083)
+ * Avoid exposing compaction strategy index externally (CASSANDRA-14082)
+ * Prevent continuous schema exchange between 3.0 and 3.11 nodes (CASSANDRA-14109)
+ * Fix imbalanced disks when replacing node with same address with JBOD (CASSANDRA-14084)
+ * Reload compaction strategies when disk boundaries are invalidated (CASSANDRA-13948)
+ * Remove OpenJDK log warning (CASSANDRA-13916)
+ * Prevent compaction strategies from looping indefinitely (CASSANDRA-14079)
+ * Cache disk boundaries (CASSANDRA-13215)
+ * Add asm jar to build.xml for maven builds (CASSANDRA-11193)
+ * Round buffer size to powers of 2 for the chunk cache (CASSANDRA-13897)
+ * Update jackson JSON jars (CASSANDRA-13949)
+ * Avoid locks when checking LCS fanout and if we should defrag (CASSANDRA-13930)
+ * Correctly count range tombstones in traces and tombstone thresholds (CASSANDRA-8527)
-
+Merged from 3.0:
+ * Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
* Handle failure when mutating repaired status in Verifier (CASSANDRA-13933)
- * Close socket on error during connect on OutboundTcpConnection (CASSANDRA-9630)
* Set encoding for javadoc generation (CASSANDRA-14154)
* Fix index target computation for dense composite tables with dropped compact storage (CASSANDRA-14104)
* Improve commit log chain marker updating (CASSANDRA-14108)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/src/java/org/apache/cassandra/db/compaction/Verifier.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/test/unit/org/apache/cassandra/db/VerifyTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/VerifyTest.java
index 6808c47,0748270..a332f74
--- a/test/unit/org/apache/cassandra/db/VerifyTest.java
+++ b/test/unit/org/apache/cassandra/db/VerifyTest.java
@@@ -23,8 -23,8 +23,9 @@@ import com.google.common.base.Charsets
import org.apache.cassandra.OrderedJUnit4ClassRunner;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
+import org.apache.cassandra.cache.ChunkCache;
import org.apache.cassandra.UpdateBuilder;
+ import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.db.compaction.CompactionManager;
import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.db.marshal.UUIDType;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6eb65e5a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org
[3/6] cassandra git commit: Use the correct digest file and reload
sstable metadata in nodetool verify
Posted by ma...@apache.org.
Use the correct digest file and reload sstable metadata in nodetool verify
Patch by marcuse; reviewed by Ariel Weisberg for CASSANDRA-14217
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/21978bf9
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/21978bf9
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/21978bf9
Branch: refs/heads/trunk
Commit: 21978bf9bba520c3d7e838ee6b15536d5b807ef4
Parents: 40148a1
Author: Marcus Eriksson <ma...@apache.org>
Authored: Tue Feb 6 15:25:07 2018 +0100
Committer: Marcus Eriksson <ma...@apache.org>
Committed: Fri Feb 9 15:05:55 2018 +0100
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/db/compaction/Verifier.java | 2 +
.../io/util/DataIntegrityMetadata.java | 2 +-
.../org/apache/cassandra/db/VerifyTest.java | 39 ++++++++++++++++++++
.../cassandra/io/sstable/LegacySSTableTest.java | 18 +++++++++
5 files changed, 61 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4e8f2ac..f42f3f4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.16
+ * Use the correct digest file and reload sstable metadata in nodetool verify (CASSANDRA-14217)
* Handle failure when mutating repaired status in Verifier (CASSANDRA-13933)
* Close socket on error during connect on OutboundTcpConnection (CASSANDRA-9630)
* Set encoding for javadoc generation (CASSANDRA-14154)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/src/java/org/apache/cassandra/db/compaction/Verifier.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/Verifier.java b/src/java/org/apache/cassandra/db/compaction/Verifier.java
index 86bc377..586c754 100644
--- a/src/java/org/apache/cassandra/db/compaction/Verifier.java
+++ b/src/java/org/apache/cassandra/db/compaction/Verifier.java
@@ -259,6 +259,8 @@ public class Verifier implements Closeable
try
{
sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, ActiveRepairService.UNREPAIRED_SSTABLE);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
}
catch(IOException ioe)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java b/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
index 0a89d74..cbf5753 100644
--- a/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
+++ b/src/java/org/apache/cassandra/io/util/DataIntegrityMetadata.java
@@ -110,7 +110,7 @@ public class DataIntegrityMetadata
{
this.descriptor = descriptor;
checksum = descriptor.version.uncompressedChecksumType().newInstance();
- digestReader = RandomAccessReader.open(new File(descriptor.filenameFor(Component.digestFor(descriptor.version.uncompressedChecksumType()))));
+ digestReader = RandomAccessReader.open(new File(descriptor.filenameFor(descriptor.digestComponent)));
dataReader = RandomAccessReader.open(new File(descriptor.filenameFor(Component.DATA)));
try
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/test/unit/org/apache/cassandra/db/VerifyTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/VerifyTest.java b/test/unit/org/apache/cassandra/db/VerifyTest.java
index fc87520..0748270 100644
--- a/test/unit/org/apache/cassandra/db/VerifyTest.java
+++ b/test/unit/org/apache/cassandra/db/VerifyTest.java
@@ -24,6 +24,7 @@ import org.apache.cassandra.OrderedJUnit4ClassRunner;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
import org.apache.cassandra.UpdateBuilder;
+import org.apache.cassandra.db.compaction.AbstractCompactionStrategy;
import org.apache.cassandra.db.compaction.CompactionManager;
import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.db.marshal.UUIDType;
@@ -44,9 +45,14 @@ import org.junit.runner.RunWith;
import java.io.*;
import java.nio.file.Files;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@RunWith(OrderedJUnit4ClassRunner.class)
@@ -368,6 +374,39 @@ public class VerifyTest
}
}
+ @Test
+ public void testMutateRepair() throws IOException, ExecutionException, InterruptedException
+ {
+ CompactionManager.instance.disableAutoCompaction();
+ Keyspace keyspace = Keyspace.open(KEYSPACE);
+ ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CORRUPT_CF2);
+
+ fillCF(cfs, 2);
+
+ SSTableReader sstable = cfs.getLiveSSTables().iterator().next();
+ sstable.descriptor.getMetadataSerializer().mutateRepairedAt(sstable.descriptor, 1);
+ sstable.reloadSSTableMetadata();
+ cfs.getTracker().notifySSTableRepairedStatusChanged(Collections.singleton(sstable));
+ assertTrue(sstable.isRepaired());
+ cfs.forceMajorCompaction();
+
+ sstable = cfs.getLiveSSTables().iterator().next();
+ Long correctChecksum;
+ try (RandomAccessFile file = new RandomAccessFile(sstable.descriptor.filenameFor(sstable.descriptor.digestComponent), "rw"))
+ {
+ correctChecksum = Long.parseLong(file.readLine());
+ }
+ writeChecksum(++correctChecksum, sstable.descriptor.filenameFor(sstable.descriptor.digestComponent));
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(false);
+ fail("should be corrupt");
+ }
+ catch (CorruptSSTableException e)
+ {}
+ assertFalse(sstable.isRepaired());
+ }
+
protected void fillCF(ColumnFamilyStore cfs, int partitionsPerSSTable)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/21978bf9/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
index f4f6e85..ede4ab6 100644
--- a/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/LegacySSTableTest.java
@@ -40,6 +40,7 @@ import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.Keyspace;
+import org.apache.cassandra.db.compaction.Verifier;
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;
@@ -186,6 +187,23 @@ public class LegacySSTableTest
Assert.assertEquals(5000, rs.size());
}
+ @Test
+ public void verifyOldSSTables() throws Exception
+ {
+ for (String legacyVersion : legacyVersions)
+ {
+ loadLegacyTables(legacyVersion);
+ ColumnFamilyStore cfs = Keyspace.open("legacy_tables").getColumnFamilyStore(String.format("legacy_%s_simple", legacyVersion));
+ for (SSTableReader sstable : cfs.getLiveSSTables())
+ {
+ try (Verifier verifier = new Verifier(cfs, sstable, false))
+ {
+ verifier.verify(true);
+ }
+ }
+ }
+ }
+
private void streamLegacyTables(String legacyVersion) throws Exception
{
for (int compact = 0; compact <= 1; compact++)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org