You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2021/09/22 16:28:37 UTC

[cassandra] branch cassandra-3.11 updated: Standalone scrub validates keys

This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch cassandra-3.11
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-3.11 by this push:
     new ec1195b  Standalone scrub validates keys
ec1195b is described below

commit ec1195bed76b17a150371810c78413e6cb9c7049
Author: Brandon Williams <br...@apache.org>
AuthorDate: Fri Sep 17 16:46:07 2021 -0500

    Standalone scrub validates keys
    
    Patch by brandonwilliams; reviewed by blerer for CASSANDRA-16969
---
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/db/compaction/Scrubber.java | 5 ++++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index e70d3d7..84f02c4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.11.12
+ * Add key validation to ssstablescrub (CASSANDRA-16969)
  * Update Jackson from 2.9.10 to 2.12.5 (CASSANDRA-16851)
  * Include SASI components to snapshots (CASSANDRA-15134)
  * Make assassinate more resilient to missing tokens (CASSANDRA-16847)
diff --git a/src/java/org/apache/cassandra/db/compaction/Scrubber.java b/src/java/org/apache/cassandra/db/compaction/Scrubber.java
index 8767873..c5c9d78 100644
--- a/src/java/org/apache/cassandra/db/compaction/Scrubber.java
+++ b/src/java/org/apache/cassandra/db/compaction/Scrubber.java
@@ -189,7 +189,9 @@ public class Scrubber implements Closeable
                 DecoratedKey key = null;
                 try
                 {
-                    key = sstable.decorateKey(ByteBufferUtil.readWithShortLength(dataFile));
+                    ByteBuffer raw = ByteBufferUtil.readWithShortLength(dataFile);
+                    cfs.metadata.getKeyValidator().validate(raw);
+                    key = sstable.decorateKey(raw);
                 }
                 catch (Throwable th)
                 {
@@ -247,6 +249,7 @@ public class Scrubber implements Closeable
                         key = sstable.decorateKey(currentIndexKey);
                         try
                         {
+                            cfs.metadata.getKeyValidator().validate(key.getKey());
                             dataFile.seek(dataStartFromIndex);
 
                             if (tryAppend(prevKey, key, writer))

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org