[ https://issues.apache.org/jira/browse/CASSANDRA-9686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14624650#comment-14624650 ]
Stefania commented on CASSANDRA-9686: ------------------------------------- That's the expected behavior, see the discussion above regarding carrying on with corrupt system tables. It's a bug that _stop_ allows the transports and gossip to be started after we have encountered corrupt sstable files. If it happened after startup, _stop_ would leave the process running but with no gossip or transports, so that you cannot do anything with it other than analyzing the status via JMX. During startup, gossip or the transports aren't started yet, so they are not stopped and later they start. We decided the easiest way to fix this was to stop the process if we encounter corrupt sstables at startup. You can use the _ignore_ policy to carry on, but you really should fix corrupt sstable files, or the system may become unstable depending on which sstable files are corrupt. If standalone scrub (sstablescrub) recovers the files (it couldn't with yours) then it would move them as well. Perhaps you could open a ticket to enhance sstablescrub to always move files, even if they cannot be recovered. So I suggest you try standalone scrub and open a ticket with a request to move the files, perhaps via a command line argument? The idea would be: cassandra fails fast (it won't start), you run standalone scrub and restart. Better like this than ignoring corrupt sstable files IMO. > FSReadError and LEAK DETECTED after upgrading > --------------------------------------------- > > Key: CASSANDRA-9686 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9686 > Project: Cassandra > Issue Type: Bug > Components: Core > Environment: Windows-7-32 bit, 3.2GB RAM, Java 1.7.0_55 > Reporter: Andreas Schnitzerling > Assignee: Stefania > Fix For: 2.1.x, 2.2.x > > Attachments: cassandra.bat, cassandra.yaml, > compactions_in_progress.zip, sstable_activity.zip, system.log > > > After upgrading one of 15 nodes from 2.1.7 to 2.2.0-rc1 I get FSReadError and > LEAK DETECTED on start. Deleting the listed files, the failure goes away. > {code:title=system.log} > ERROR [SSTableBatchOpen:1] 2015-06-29 14:38:34,554 > DebuggableThreadPoolExecutor.java:242 - Error in ThreadPoolExecutor > org.apache.cassandra.io.FSReadError: java.io.IOException: Compressed file > with 0 chunks encountered: java.io.DataInputStream@1c42271 > at > org.apache.cassandra.io.compress.CompressionMetadata.readChunkOffsets(CompressionMetadata.java:178) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.compress.CompressionMetadata.<init>(CompressionMetadata.java:117) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.compress.CompressionMetadata.create(CompressionMetadata.java:86) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.util.CompressedSegmentedFile$Builder.metadata(CompressedSegmentedFile.java:142) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.util.CompressedPoolingSegmentedFile$Builder.complete(CompressedPoolingSegmentedFile.java:101) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.util.SegmentedFile$Builder.complete(SegmentedFile.java:178) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:681) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:644) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:443) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:350) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > at > org.apache.cassandra.io.sstable.format.SSTableReader$4.run(SSTableReader.java:480) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > 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] > Caused by: java.io.IOException: Compressed file with 0 chunks encountered: > java.io.DataInputStream@1c42271 > at > org.apache.cassandra.io.compress.CompressionMetadata.readChunkOffsets(CompressionMetadata.java:174) > ~[apache-cassandra-2.2.0-rc1.jar:2.2.0-rc1] > ... 15 common frames omitted > ERROR [Reference-Reaper:1] 2015-06-29 14:38:34,734 Ref.java:189 - LEAK > DETECTED: a reference > (org.apache.cassandra.utils.concurrent.Ref$State@3e547f) to class > org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier@1926439:D:\Programme\Cassandra\data\data\system\compactions_in_progress\system-compactions_in_progress-ka-6866 > was not released before the reference was garbage collected > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)