You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jm...@apache.org on 2015/01/07 19:37:05 UTC
cassandra git commit: Better detection/logging for corruption in
compressed sstables
Repository: cassandra
Updated Branches:
refs/heads/cassandra-2.1 2afe0e880 -> 905273e3e
Better detection/logging for corruption in compressed sstables
Patch by jmckenzie; reviewed by marcuse for CASSANDRA-8192
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/905273e3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/905273e3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/905273e3
Branch: refs/heads/cassandra-2.1
Commit: 905273e3e419ba12d8130f56943b8f4f6818d544
Parents: 2afe0e8
Author: Joshua McKenzie <jm...@apache.org>
Authored: Wed Jan 7 12:35:11 2015 -0600
Committer: Joshua McKenzie <jm...@apache.org>
Committed: Wed Jan 7 12:35:11 2015 -0600
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/io/compress/CompressionMetadata.java | 5 +++++
2 files changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/905273e3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 1f93bf5..e7a4ee5 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
2.1.3
+ * Better detection/logging for corruption in compressed sstables (CASSANDRA-8192)
* Use the correct repairedAt value when closing writer (CASSANDRA-8570)
* (cqlsh) Handle a schema mismatch being detected on startup (CASSANDRA-8512)
* Properly calculate expected write size during compaction (CASSANDRA-8532)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/905273e3/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
index f19d502..a40048a 100644
--- a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
+++ b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java
@@ -178,6 +178,9 @@ public class CompressionMetadata
try
{
int chunkCount = input.readInt();
+ if (chunkCount <= 0)
+ throw new IOException("Compressed file with 0 chunks encountered: " + input);
+
Memory offsets = Memory.allocate(chunkCount * 8);
for (int i = 0; i < chunkCount; i++)
@@ -398,6 +401,8 @@ public class CompressionMetadata
public Chunk(long offset, int length)
{
+ assert(length > 0);
+
this.offset = offset;
this.length = length;
}