[ https://issues.apache.org/jira/browse/CASSANDRA-8192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14256721#comment-14256721 ]
Marcus Eriksson commented on CASSANDRA-8192: -------------------------------------------- I need to create a file like this: {code} DataOutputStream dos = new DataOutputStream(new FileOutputStream("/tmp/comp_info")); dos.writeUTF("LZ4Compressor"); // compressor name dos.writeInt(0);// option count dos.writeInt(0);//chunk length dos.writeLong(0); // data length dos.writeInt(0); // chunk count dos.close(); {code} to reproduce (dunno how common it is for file corruption to create files like that?) Anyway, could we add an assert where we serialize the CompressionInfo to disk to make sure we don't have a bug there? And, if it is corrupt data, we should probably check if chunkCount <= 0? > Better error logging on corrupt compressed SSTables: currently AssertionError > in Memory.java > -------------------------------------------------------------------------------------------- > > Key: CASSANDRA-8192 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8192 > Project: Cassandra > Issue Type: Improvement > Components: Core > Environment: Windows-7-32 bit, 3GB RAM, Java 1.7.0_67 > Reporter: Andreas Schnitzerling > Assignee: Joshua McKenzie > Priority: Minor > Fix For: 2.1.3 > > Attachments: 8192_v1.txt, cassandra.bat, cassandra.yaml, > logdata-onlinedata-ka-196504-CompressionInfo.zip, printChunkOffsetErrors.txt, > system-compactions_in_progress-ka-47594-CompressionInfo.zip, > system-sstable_activity-jb-25-Filter.zip, system.log, system_AssertionTest.log > > > Since update of 1 of 12 nodes from 2.1.0-rel to 2.1.1-rel Exception during > start up. > {panel:title=system.log} > ERROR [SSTableBatchOpen:1] 2014-10-27 09:44:00,079 CassandraDaemon.java:153 - > Exception in thread Thread[SSTableBatchOpen:1,5,main] > java.lang.AssertionError: null > at org.apache.cassandra.io.util.Memory.size(Memory.java:307) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.compress.CompressionMetadata.<init>(CompressionMetadata.java:135) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.compress.CompressionMetadata.create(CompressionMetadata.java:83) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.util.CompressedSegmentedFile$Builder.metadata(CompressedSegmentedFile.java:50) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.util.CompressedPoolingSegmentedFile$Builder.complete(CompressedPoolingSegmentedFile.java:48) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:766) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.sstable.SSTableReader.load(SSTableReader.java:725) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:402) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.sstable.SSTableReader.open(SSTableReader.java:302) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at > org.apache.cassandra.io.sstable.SSTableReader$4.run(SSTableReader.java:438) > ~[apache-cassandra-2.1.1.jar:2.1.1] > at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) > ~[na:1.7.0_55] > at java.util.concurrent.FutureTask.run(Unknown Source) ~[na:1.7.0_55] > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > [na:1.7.0_55] > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > [na:1.7.0_55] > at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] > {panel} > In the attached log you can still see as well CASSANDRA-8069 and > CASSANDRA-6283. -- This message was sent by Atlassian JIRA (v6.3.4#6332)