diff --git a/CHANGES.txt b/CHANGES.txt index 0864759d95..a5b32205ba 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -159,6 +159,9 @@ Merged from 2.0: * Fix streaming not holding ref when stream error (CASSANDRA-9295) * Fix canonical view returning early opened SSTables (CASSANDRA-9396) Merged from 2.0: + * Fix potential StackOverflow when setting CrcCheckChance over JMX (CASSANDRA-9488) + * Fix null static columns in pages after the first, paged reversed + queries (CASSANDRA-8502) * Fix counting cache serialization in request metrics (CASSANDRA-9466) * (cqlsh) Add LOGIN command to switch users (CASSANDRA-7212) * Clone SliceQueryFilter in AbstractReadCommand implementations (CASSANDRA-8940) diff --git a/src/java/org/apache/cassandra/io/compress/CompressionParameters.java b/src/java/org/apache/cassandra/io/compress/CompressionParameters.java index d4850d4f70..b11482661d 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressionParameters.java +++ b/src/java/org/apache/cassandra/io/compress/CompressionParameters.java @@ -110,7 +110,7 @@ public class CompressionParameters validateCrcCheckChance(crcCheckChance); this.crcCheckChance = crcCheckChance; - if (liveMetadata != null) + if (liveMetadata != null && this != liveMetadata.compressionParameters) liveMetadata.compressionParameters.setCrcCheckChance(crcCheckChance); } diff --git a/test/unit/org/apache/cassandra/cql3/CrcCheckChanceTest.java b/test/unit/org/apache/cassandra/cql3/CrcCheckChanceTest.java index 3bcccf0fef..ac3ffbc425 100644 --- a/test/unit/org/apache/cassandra/cql3/CrcCheckChanceTest.java +++ b/test/unit/org/apache/cassandra/cql3/CrcCheckChanceTest.java @@ -56,6 +56,8 @@ public class CrcCheckChanceTest extends CQLTester Assert.assertEquals(0.99, indexCfs.metadata.compressionParameters.getCrcCheckChance()); Assert.assertEquals(0.99, indexCfs.getSSTables().iterator().next().getCompressionMetadata().parameters.getCrcCheckChance()); + //Test for stack overflow + cfs.setCrcCheckChance(0.99); assertRows(execute("SELECT * FROM %s WHERE p=?", "p1"), row("p1", "k1", "sv1", "v1"),