git commit: Fix resetAndTruncate:ing CompressionMetadata
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 b3a9a4434 - 41d8a5f48 Fix resetAndTruncate:ing CompressionMetadata Patch by kvaster, reviewed by marcuse for CASSANDRA-6791 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41d8a5f4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41d8a5f4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41d8a5f4 Branch: refs/heads/cassandra-2.0 Commit: 41d8a5f4861c37ff8e22344418e9277236672c1f Parents: b3a9a44 Author: Marcus Eriksson marc...@apache.org Authored: Mon Mar 3 11:35:03 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Mar 3 14:21:00 2014 +0100 -- CHANGES.txt | 1 + .../io/compress/CompressedSequentialWriter.java | 2 +- .../CompressedRandomAccessReaderTest.java | 42 3 files changed, 44 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 3e73f91..6de11c5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -28,6 +28,7 @@ * Disallow post-query re-ordering when paging (CASSANDRA-6722) * Fix potential paging bug with deleted columns (CASSANDRA-6748) * Fix NPE on BulkLoader caused by losing StreamEvent (CASSANDRA-6636) + * Fix truncating compression metadata (CASSANDRA-6791) Merged from 1.2: * Add CMSClassUnloadingEnabled JVM option (CASSANDRA-6541) * Catch memtable flush exceptions during shutdown (CASSANDRA-6735) http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java -- diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 54b990f..eef5b17 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -231,7 +231,7 @@ public class CompressedSequentialWriter extends SequentialWriter // truncate data and index file truncate(chunkOffset); -metadataWriter.resetAndTruncate(realMark.nextChunkIndex); +metadataWriter.resetAndTruncate(realMark.nextChunkIndex - 1); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java -- diff --git a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java index ee32a0e..3c9dfe5 100644 --- a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java +++ b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java @@ -19,11 +19,13 @@ package org.apache.cassandra.io.compress; import java.io.*; +import java.util.Collections; import java.util.Random; import org.junit.Test; import org.apache.cassandra.db.marshal.BytesType; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.sstable.CorruptSSTableException; import org.apache.cassandra.io.sstable.SSTableMetadata; import org.apache.cassandra.io.util.*; @@ -48,6 +50,46 @@ public class CompressedRandomAccessReaderTest testResetAndTruncate(File.createTempFile(compressed, 1), true, 10); testResetAndTruncate(File.createTempFile(compressed, 2), true, CompressionParameters.DEFAULT_CHUNK_LENGTH); } +@Test +public void test6791() throws IOException, ConfigurationException +{ +File f = File.createTempFile(compressed6791_, 3); +String filename = f.getAbsolutePath(); +try +{ + +SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector(BytesType.instance).replayPosition(null); +CompressedSequentialWriter writer = new CompressedSequentialWriter(f, filename + .metadata, false, new CompressionParameters(SnappyCompressor.instance, 32, Collections.String, StringemptyMap()), sstableMetadataCollector); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); + +FileMark mark = writer.mark(); +// write enough garbage to create new chunks: +for (int i = 0; i 40; ++i) +writer.write(y.getBytes()); + +writer.resetAndTruncate(mark); + +for (int i = 0; i 20; i++) +
[1/3] git commit: Fix resetAndTruncate:ing CompressionMetadata
Repository: cassandra Updated Branches: refs/heads/trunk 7d8092b66 - e80564f39 Fix resetAndTruncate:ing CompressionMetadata Patch by kvaster, reviewed by marcuse for CASSANDRA-6791 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41d8a5f4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41d8a5f4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41d8a5f4 Branch: refs/heads/trunk Commit: 41d8a5f4861c37ff8e22344418e9277236672c1f Parents: b3a9a44 Author: Marcus Eriksson marc...@apache.org Authored: Mon Mar 3 11:35:03 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Mar 3 14:21:00 2014 +0100 -- CHANGES.txt | 1 + .../io/compress/CompressedSequentialWriter.java | 2 +- .../CompressedRandomAccessReaderTest.java | 42 3 files changed, 44 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 3e73f91..6de11c5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -28,6 +28,7 @@ * Disallow post-query re-ordering when paging (CASSANDRA-6722) * Fix potential paging bug with deleted columns (CASSANDRA-6748) * Fix NPE on BulkLoader caused by losing StreamEvent (CASSANDRA-6636) + * Fix truncating compression metadata (CASSANDRA-6791) Merged from 1.2: * Add CMSClassUnloadingEnabled JVM option (CASSANDRA-6541) * Catch memtable flush exceptions during shutdown (CASSANDRA-6735) http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java -- diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 54b990f..eef5b17 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -231,7 +231,7 @@ public class CompressedSequentialWriter extends SequentialWriter // truncate data and index file truncate(chunkOffset); -metadataWriter.resetAndTruncate(realMark.nextChunkIndex); +metadataWriter.resetAndTruncate(realMark.nextChunkIndex - 1); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java -- diff --git a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java index ee32a0e..3c9dfe5 100644 --- a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java +++ b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java @@ -19,11 +19,13 @@ package org.apache.cassandra.io.compress; import java.io.*; +import java.util.Collections; import java.util.Random; import org.junit.Test; import org.apache.cassandra.db.marshal.BytesType; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.sstable.CorruptSSTableException; import org.apache.cassandra.io.sstable.SSTableMetadata; import org.apache.cassandra.io.util.*; @@ -48,6 +50,46 @@ public class CompressedRandomAccessReaderTest testResetAndTruncate(File.createTempFile(compressed, 1), true, 10); testResetAndTruncate(File.createTempFile(compressed, 2), true, CompressionParameters.DEFAULT_CHUNK_LENGTH); } +@Test +public void test6791() throws IOException, ConfigurationException +{ +File f = File.createTempFile(compressed6791_, 3); +String filename = f.getAbsolutePath(); +try +{ + +SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector(BytesType.instance).replayPosition(null); +CompressedSequentialWriter writer = new CompressedSequentialWriter(f, filename + .metadata, false, new CompressionParameters(SnappyCompressor.instance, 32, Collections.String, StringemptyMap()), sstableMetadataCollector); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); + +FileMark mark = writer.mark(); +// write enough garbage to create new chunks: +for (int i = 0; i 40; ++i) +writer.write(y.getBytes()); + +writer.resetAndTruncate(mark); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); +
[1/2] git commit: Fix resetAndTruncate:ing CompressionMetadata
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 dcca99684 - e4437bc18 Fix resetAndTruncate:ing CompressionMetadata Patch by kvaster, reviewed by marcuse for CASSANDRA-6791 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/41d8a5f4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/41d8a5f4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/41d8a5f4 Branch: refs/heads/cassandra-2.1 Commit: 41d8a5f4861c37ff8e22344418e9277236672c1f Parents: b3a9a44 Author: Marcus Eriksson marc...@apache.org Authored: Mon Mar 3 11:35:03 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Mar 3 14:21:00 2014 +0100 -- CHANGES.txt | 1 + .../io/compress/CompressedSequentialWriter.java | 2 +- .../CompressedRandomAccessReaderTest.java | 42 3 files changed, 44 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 3e73f91..6de11c5 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -28,6 +28,7 @@ * Disallow post-query re-ordering when paging (CASSANDRA-6722) * Fix potential paging bug with deleted columns (CASSANDRA-6748) * Fix NPE on BulkLoader caused by losing StreamEvent (CASSANDRA-6636) + * Fix truncating compression metadata (CASSANDRA-6791) Merged from 1.2: * Add CMSClassUnloadingEnabled JVM option (CASSANDRA-6541) * Catch memtable flush exceptions during shutdown (CASSANDRA-6735) http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java -- diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 54b990f..eef5b17 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -231,7 +231,7 @@ public class CompressedSequentialWriter extends SequentialWriter // truncate data and index file truncate(chunkOffset); -metadataWriter.resetAndTruncate(realMark.nextChunkIndex); +metadataWriter.resetAndTruncate(realMark.nextChunkIndex - 1); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/41d8a5f4/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java -- diff --git a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java index ee32a0e..3c9dfe5 100644 --- a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java +++ b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java @@ -19,11 +19,13 @@ package org.apache.cassandra.io.compress; import java.io.*; +import java.util.Collections; import java.util.Random; import org.junit.Test; import org.apache.cassandra.db.marshal.BytesType; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.sstable.CorruptSSTableException; import org.apache.cassandra.io.sstable.SSTableMetadata; import org.apache.cassandra.io.util.*; @@ -48,6 +50,46 @@ public class CompressedRandomAccessReaderTest testResetAndTruncate(File.createTempFile(compressed, 1), true, 10); testResetAndTruncate(File.createTempFile(compressed, 2), true, CompressionParameters.DEFAULT_CHUNK_LENGTH); } +@Test +public void test6791() throws IOException, ConfigurationException +{ +File f = File.createTempFile(compressed6791_, 3); +String filename = f.getAbsolutePath(); +try +{ + +SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector(BytesType.instance).replayPosition(null); +CompressedSequentialWriter writer = new CompressedSequentialWriter(f, filename + .metadata, false, new CompressionParameters(SnappyCompressor.instance, 32, Collections.String, StringemptyMap()), sstableMetadataCollector); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); + +FileMark mark = writer.mark(); +// write enough garbage to create new chunks: +for (int i = 0; i 40; ++i) +writer.write(y.getBytes()); + +writer.resetAndTruncate(mark); + +for (int i = 0; i 20; i++) +
git commit: Fix resetAndTruncate:ing CompressionMetadata
Repository: cassandra Updated Branches: refs/heads/cassandra-1.2 f08ae394f - 64098f7d6 Fix resetAndTruncate:ing CompressionMetadata Patch by kvaster, reviewed by marcuse for CASSANDRA-6791 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64098f7d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64098f7d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64098f7d Branch: refs/heads/cassandra-1.2 Commit: 64098f7d6f0b122448693a3c6da16af54c99013b Parents: f08ae39 Author: Marcus Eriksson marc...@apache.org Authored: Mon Mar 3 15:03:34 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Mar 3 15:03:34 2014 +0100 -- CHANGES.txt | 2 +- .../io/compress/CompressedSequentialWriter.java | 2 +- .../CompressedRandomAccessReaderTest.java | 43 3 files changed, 45 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 780b528..b3c0a35 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,7 +19,7 @@ * Support negative timestamps for CQL3 dates in query string (CASSANDRA-6718) * Avoid NPEs when receiving table changes for an unknown keyspace (CASSANDRA-5631) * Fix bootstrapping when there is no schema (CASSANDRA-6685) - + * Fix truncating compression metadata (CASSANDRA-6791) 1.2.15 * Move handling of migration event source to solve bootstrap race (CASSANDRA-6648) http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java -- diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 00eb5a7..da55e83 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -231,7 +231,7 @@ public class CompressedSequentialWriter extends SequentialWriter // truncate data and index file truncate(chunkOffset); -metadataWriter.resetAndTruncate(realMark.nextChunkIndex); +metadataWriter.resetAndTruncate(realMark.nextChunkIndex - 1); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java -- diff --git a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java index 830c3e1..678a650 100644 --- a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java +++ b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java @@ -19,10 +19,12 @@ package org.apache.cassandra.io.compress; import java.io.*; +import java.util.Collections; import java.util.Random; import org.junit.Test; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.sstable.CorruptSSTableException; import org.apache.cassandra.io.sstable.SSTableMetadata; import org.apache.cassandra.io.util.*; @@ -95,6 +97,47 @@ public class CompressedRandomAccessReaderTest } @Test +public void test6791() throws IOException, ConfigurationException +{ +File f = File.createTempFile(compressed6791_, 3); +String filename = f.getAbsolutePath(); +try +{ + +SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector().replayPosition(null); +CompressedSequentialWriter writer = new CompressedSequentialWriter(f, filename + .metadata, false, new CompressionParameters(SnappyCompressor.instance, 32, Collections.String, StringemptyMap()), sstableMetadataCollector); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); + +FileMark mark = writer.mark(); +// write enough garbage to create new chunks: +for (int i = 0; i 40; i++) +writer.write(y.getBytes()); + +writer.resetAndTruncate(mark); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); +writer.close(); + +CompressedRandomAccessReader reader = CompressedRandomAccessReader.open(filename, new CompressionMetadata(filename + .metadata, f.length()), false); +String res = reader.readLine(); +assertEquals(res,
[1/2] git commit: Fix resetAndTruncate:ing CompressionMetadata
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 41d8a5f48 - ef20671c2 Fix resetAndTruncate:ing CompressionMetadata Patch by kvaster, reviewed by marcuse for CASSANDRA-6791 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64098f7d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64098f7d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64098f7d Branch: refs/heads/cassandra-2.0 Commit: 64098f7d6f0b122448693a3c6da16af54c99013b Parents: f08ae39 Author: Marcus Eriksson marc...@apache.org Authored: Mon Mar 3 15:03:34 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Mar 3 15:03:34 2014 +0100 -- CHANGES.txt | 2 +- .../io/compress/CompressedSequentialWriter.java | 2 +- .../CompressedRandomAccessReaderTest.java | 43 3 files changed, 45 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 780b528..b3c0a35 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,7 +19,7 @@ * Support negative timestamps for CQL3 dates in query string (CASSANDRA-6718) * Avoid NPEs when receiving table changes for an unknown keyspace (CASSANDRA-5631) * Fix bootstrapping when there is no schema (CASSANDRA-6685) - + * Fix truncating compression metadata (CASSANDRA-6791) 1.2.15 * Move handling of migration event source to solve bootstrap race (CASSANDRA-6648) http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java -- diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 00eb5a7..da55e83 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -231,7 +231,7 @@ public class CompressedSequentialWriter extends SequentialWriter // truncate data and index file truncate(chunkOffset); -metadataWriter.resetAndTruncate(realMark.nextChunkIndex); +metadataWriter.resetAndTruncate(realMark.nextChunkIndex - 1); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java -- diff --git a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java index 830c3e1..678a650 100644 --- a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java +++ b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java @@ -19,10 +19,12 @@ package org.apache.cassandra.io.compress; import java.io.*; +import java.util.Collections; import java.util.Random; import org.junit.Test; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.sstable.CorruptSSTableException; import org.apache.cassandra.io.sstable.SSTableMetadata; import org.apache.cassandra.io.util.*; @@ -95,6 +97,47 @@ public class CompressedRandomAccessReaderTest } @Test +public void test6791() throws IOException, ConfigurationException +{ +File f = File.createTempFile(compressed6791_, 3); +String filename = f.getAbsolutePath(); +try +{ + +SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector().replayPosition(null); +CompressedSequentialWriter writer = new CompressedSequentialWriter(f, filename + .metadata, false, new CompressionParameters(SnappyCompressor.instance, 32, Collections.String, StringemptyMap()), sstableMetadataCollector); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); + +FileMark mark = writer.mark(); +// write enough garbage to create new chunks: +for (int i = 0; i 40; i++) +writer.write(y.getBytes()); + +writer.resetAndTruncate(mark); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); +writer.close(); + +CompressedRandomAccessReader reader = CompressedRandomAccessReader.open(filename, new CompressionMetadata(filename + .metadata, f.length()), false); +String res = reader.readLine(); +assertEquals(res,
[1/3] git commit: Fix resetAndTruncate:ing CompressionMetadata
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 043953127 - 56631e139 Fix resetAndTruncate:ing CompressionMetadata Patch by kvaster, reviewed by marcuse for CASSANDRA-6791 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64098f7d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64098f7d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64098f7d Branch: refs/heads/cassandra-2.1 Commit: 64098f7d6f0b122448693a3c6da16af54c99013b Parents: f08ae39 Author: Marcus Eriksson marc...@apache.org Authored: Mon Mar 3 15:03:34 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Mar 3 15:03:34 2014 +0100 -- CHANGES.txt | 2 +- .../io/compress/CompressedSequentialWriter.java | 2 +- .../CompressedRandomAccessReaderTest.java | 43 3 files changed, 45 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 780b528..b3c0a35 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,7 +19,7 @@ * Support negative timestamps for CQL3 dates in query string (CASSANDRA-6718) * Avoid NPEs when receiving table changes for an unknown keyspace (CASSANDRA-5631) * Fix bootstrapping when there is no schema (CASSANDRA-6685) - + * Fix truncating compression metadata (CASSANDRA-6791) 1.2.15 * Move handling of migration event source to solve bootstrap race (CASSANDRA-6648) http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java -- diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 00eb5a7..da55e83 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -231,7 +231,7 @@ public class CompressedSequentialWriter extends SequentialWriter // truncate data and index file truncate(chunkOffset); -metadataWriter.resetAndTruncate(realMark.nextChunkIndex); +metadataWriter.resetAndTruncate(realMark.nextChunkIndex - 1); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java -- diff --git a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java index 830c3e1..678a650 100644 --- a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java +++ b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java @@ -19,10 +19,12 @@ package org.apache.cassandra.io.compress; import java.io.*; +import java.util.Collections; import java.util.Random; import org.junit.Test; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.sstable.CorruptSSTableException; import org.apache.cassandra.io.sstable.SSTableMetadata; import org.apache.cassandra.io.util.*; @@ -95,6 +97,47 @@ public class CompressedRandomAccessReaderTest } @Test +public void test6791() throws IOException, ConfigurationException +{ +File f = File.createTempFile(compressed6791_, 3); +String filename = f.getAbsolutePath(); +try +{ + +SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector().replayPosition(null); +CompressedSequentialWriter writer = new CompressedSequentialWriter(f, filename + .metadata, false, new CompressionParameters(SnappyCompressor.instance, 32, Collections.String, StringemptyMap()), sstableMetadataCollector); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); + +FileMark mark = writer.mark(); +// write enough garbage to create new chunks: +for (int i = 0; i 40; i++) +writer.write(y.getBytes()); + +writer.resetAndTruncate(mark); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); +writer.close(); + +CompressedRandomAccessReader reader = CompressedRandomAccessReader.open(filename, new CompressionMetadata(filename + .metadata, f.length()), false); +String res = reader.readLine(); +assertEquals(res,
[1/4] git commit: Fix resetAndTruncate:ing CompressionMetadata
Repository: cassandra Updated Branches: refs/heads/trunk 2c8100af2 - db6b563f1 Fix resetAndTruncate:ing CompressionMetadata Patch by kvaster, reviewed by marcuse for CASSANDRA-6791 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64098f7d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64098f7d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64098f7d Branch: refs/heads/trunk Commit: 64098f7d6f0b122448693a3c6da16af54c99013b Parents: f08ae39 Author: Marcus Eriksson marc...@apache.org Authored: Mon Mar 3 15:03:34 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Mar 3 15:03:34 2014 +0100 -- CHANGES.txt | 2 +- .../io/compress/CompressedSequentialWriter.java | 2 +- .../CompressedRandomAccessReaderTest.java | 43 3 files changed, 45 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 780b528..b3c0a35 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -19,7 +19,7 @@ * Support negative timestamps for CQL3 dates in query string (CASSANDRA-6718) * Avoid NPEs when receiving table changes for an unknown keyspace (CASSANDRA-5631) * Fix bootstrapping when there is no schema (CASSANDRA-6685) - + * Fix truncating compression metadata (CASSANDRA-6791) 1.2.15 * Move handling of migration event source to solve bootstrap race (CASSANDRA-6648) http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java -- diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 00eb5a7..da55e83 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -231,7 +231,7 @@ public class CompressedSequentialWriter extends SequentialWriter // truncate data and index file truncate(chunkOffset); -metadataWriter.resetAndTruncate(realMark.nextChunkIndex); +metadataWriter.resetAndTruncate(realMark.nextChunkIndex - 1); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/64098f7d/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java -- diff --git a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java index 830c3e1..678a650 100644 --- a/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java +++ b/test/unit/org/apache/cassandra/io/compress/CompressedRandomAccessReaderTest.java @@ -19,10 +19,12 @@ package org.apache.cassandra.io.compress; import java.io.*; +import java.util.Collections; import java.util.Random; import org.junit.Test; +import org.apache.cassandra.exceptions.ConfigurationException; import org.apache.cassandra.io.sstable.CorruptSSTableException; import org.apache.cassandra.io.sstable.SSTableMetadata; import org.apache.cassandra.io.util.*; @@ -95,6 +97,47 @@ public class CompressedRandomAccessReaderTest } @Test +public void test6791() throws IOException, ConfigurationException +{ +File f = File.createTempFile(compressed6791_, 3); +String filename = f.getAbsolutePath(); +try +{ + +SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector().replayPosition(null); +CompressedSequentialWriter writer = new CompressedSequentialWriter(f, filename + .metadata, false, new CompressionParameters(SnappyCompressor.instance, 32, Collections.String, StringemptyMap()), sstableMetadataCollector); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); + +FileMark mark = writer.mark(); +// write enough garbage to create new chunks: +for (int i = 0; i 40; i++) +writer.write(y.getBytes()); + +writer.resetAndTruncate(mark); + +for (int i = 0; i 20; i++) +writer.write(x.getBytes()); +writer.close(); + +CompressedRandomAccessReader reader = CompressedRandomAccessReader.open(filename, new CompressionMetadata(filename + .metadata, f.length()), false); +String res = reader.readLine(); +assertEquals(res,