diff --git a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java index 7b72105bbc..6b3b853460 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java +++ b/src/java/org/apache/cassandra/io/compress/CompressedSequentialWriter.java @@ -150,6 +150,8 @@ public class CompressedSequentialWriter extends SequentialWriter { if (overrideLength <= 0) return metadataWriter.open(originalSize, chunkOffset, isFinal ? FINAL : SHARED_FINAL); + // we are early opening the file, make sure we open metadata with the correct size + assert !isFinal; return metadataWriter.open(overrideLength, chunkOffset, SHARED); } diff --git a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java index 55de306935..84fb39fde0 100644 --- a/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java +++ b/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java @@ -352,6 +352,7 @@ public class CompressionMetadata this.offsets.unreference(); } // null out our reference to the original shared data to catch accidental reuse + // note that since noone is writing to this Writer while we open it, null:ing out this.offsets is safe this.offsets = null; if (type == OpenType.SHARED_FINAL) {