[ 
https://issues.apache.org/jira/browse/CASSANDRA-21047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Miklosovic updated CASSANDRA-21047:
------------------------------------------
    Fix Version/s: 5.x

> Compression dictionary might be closed when switching from 
> ZstdDictionaryCompressor to another one and compacting aftewards
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-21047
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21047
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Feature/Compression
>            Reporter: Stefan Miklosovic
>            Priority: Normal
>             Fix For: 5.x
>
>
> {code}
> ERROR [CompactionExecutor:6] 2025-12-01T16:36:28,850 
> JVMStabilityInspector.java:72 - Exception in thread 
> Thread[CompactionExecutor:6,5,CompactionExecutor]
> org.apache.cassandra.io.sstable.CorruptSSTableException: Corrupted: 
> /home/fermat/dev/cassandra/cassandra-instaclustr/cassandra/data/data/cassandra_easy_stress/random_book_text-1b255f4def2540a60000000000000023/pa-183-big-Data.db
>       at 
> org.apache.cassandra.io.util.CompressedChunkReader$Standard.readChunk(CompressedChunkReader.java:306)
>       at 
> org.apache.cassandra.io.util.BufferManagingRebufferer.rebuffer(BufferManagingRebufferer.java:80)
>       at 
> org.apache.cassandra.io.util.RandomAccessReader.reBufferAt(RandomAccessReader.java:67)
>       at 
> org.apache.cassandra.io.util.RandomAccessReader.seek(RandomAccessReader.java:209)
>       at 
> org.apache.cassandra.io.sstable.format.SSTableSimpleScanner.advanceRange(SSTableSimpleScanner.java:169)
>       at 
> org.apache.cassandra.io.sstable.format.SSTableSimpleScanner.hasNext(SSTableSimpleScanner.java:151)
>       at 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy$LeveledScanner.computeNext(LeveledCompactionStrategy.java:468)
>       at 
> org.apache.cassandra.db.compaction.LeveledCompactionStrategy$LeveledScanner.computeNext(LeveledCompactionStrategy.java:393)
>       at 
> com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:145)
>       at 
> com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:140)
>       at 
> org.apache.cassandra.utils.MergeIterator$OneToOne.computeNext(MergeIterator.java:511)
>       at 
> org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47)
>       at 
> org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$2.hasNext(UnfilteredPartitionIterators.java:211)
>       at 
> org.apache.cassandra.db.transform.BasePartitions.hasNext(BasePartitions.java:90)
>       at 
> org.apache.cassandra.db.compaction.CompactionIterator.hasNext(CompactionIterator.java:408)
>       at 
> org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:268)
>       at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:26)
>       at 
> org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:99)
>       at 
> org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:110)
>       at 
> org.apache.cassandra.db.compaction.CompactionManager$9.runMayThrow(CompactionManager.java:1181)
>       at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:26)
>       at 
> org.apache.cassandra.concurrent.FutureTask$3.call(FutureTask.java:141)
>       at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61)
>       at org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>       at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>       at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>       at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: org.apache.cassandra.io.compress.CorruptBlockException: 
> (/home/fermat/dev/cassandra/cassandra-instaclustr/cassandra/data/data/cassandra_easy_stress/random_book_text-1b255f4def2540a60000000000000023/pa-183-big-Data.db):
>  corruption detected, chunk at 0 of length 7311.
>       at 
> org.apache.cassandra.io.util.CompressedChunkReader$Standard.readChunk(CompressedChunkReader.java:280)
>       ... 27 common frames omitted
> Caused by: java.io.IOException: Decompression failed
>       at 
> org.apache.cassandra.io.compress.ZstdDictionaryCompressor.uncompress(ZstdDictionaryCompressor.java:177)
>       at 
> org.apache.cassandra.io.util.CompressedChunkReader$Standard.readChunk(CompressedChunkReader.java:276)
>       ... 27 common frames omitted
> Caused by: java.lang.IllegalStateException: Dictionary has been closed
>       at 
> org.apache.cassandra.db.compression.ZstdCompressionDictionary.dictionaryForDecompression(ZstdCompressionDictionary.java:145)
>       at 
> org.apache.cassandra.io.compress.ZstdDictionaryCompressor.uncompress(ZstdDictionaryCompressor.java:171)
>       ... 28 common frames omitted
> {code}
> getting this from time to time when
> 1) create zstd-dict backed table
> 2) alter table to use e.g. LCS
> 3) nodetool compact



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to