Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15284

AssertionError while scrubbing sstable

    XMLWordPrintableJSON

Details

    • Correctness - Unrecoverable Corruption / Loss
    • Normal
    • Normal
    • User Report
    • OpenJDK, Linux
    • None

    Description

      I've got a damaged data file but while trying to run scrub (online or offline) I always get this

      error:

       

      -- StackTrace --
      java.lang.AssertionError
              at org.apache.cassandra.io.compress.CompressionMetadata$Chunk.<init>(CompressionMetadata.java:474)
              at org.apache.cassandra.io.compress.CompressionMetadata.chunkFor(CompressionMetadata.java:239)
              at org.apache.cassandra.io.util.MmappedRegions.updateState(MmappedRegions.java:163)
              at org.apache.cassandra.io.util.MmappedRegions.<init>(MmappedRegions.java:73)
              at org.apache.cassandra.io.util.MmappedRegions.<init>(MmappedRegions.java:61)
              at org.apache.cassandra.io.util.MmappedRegions.map(MmappedRegions.java:104)
              at org.apache.cassandra.io.util.FileHandle$Builder.complete(FileHandle.java:362)
              at org.apache.cassandra.io.util.FileHandle$Builder.complete(FileHandle.java:331)
              at org.apache.cassandra.io.sstable.format.big.BigTableWriter.openFinal(BigTableWriter.java:336)
              at org.apache.cassandra.io.sstable.format.big.BigTableWriter.openFinalEarly(BigTableWriter.java:318)
              at org.apache.cassandra.io.sstable.SSTableRewriter.switchWriter(SSTableRewriter.java:322)
              at org.apache.cassandra.io.sstable.SSTableRewriter.doPrepare(SSTableRewriter.java:370)
              at org.apache.cassandra.utils.concurrent.Transactional$AbstractTransactional.prepareToCommit(Transactional.java:173)
              at org.apache.cassandra.utils.concurrent.Transactional$AbstractTransactional.finish(Transactional.java:184)
              at org.apache.cassandra.io.sstable.SSTableRewriter.finish(SSTableRewriter.java:357)
              at org.apache.cassandra.db.compaction.Scrubber.scrub(Scrubber.java:291)
              at org.apache.cassandra.db.compaction.CompactionManager.scrubOne(CompactionManager.java:1010)
              at org.apache.cassandra.db.compaction.CompactionManager.access$200(CompactionManager.java:83)
              at org.apache.cassandra.db.compaction.CompactionManager$3.execute(CompactionManager.java:391)
              at org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:312)
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:81)
              at java.lang.Thread.run(Thread.java:748)
      

      At the moment I've moved away the corrupted file, If you need more info fell free to ask
       

      According to the source https://github.com/apache/cassandra/blob/cassandra-3.11/src/java/org/apache/cassandra/io/compress/CompressionMetadata.java#L474

      looks like the requested chung length is <= 0

      Attachments

        1. assert-comp-meta.diff
          0.9 kB
          Gianluigi Tiesi

        Activity

          People

            Unassigned Unassigned
            sherpya Gianluigi Tiesi
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: