{"record":{"id":"c5c0318679165b81","repo":"apache/cassandra","slug":"index-summary-component-of-sstable","errorCode":null,"errorMessage":"Index summary component of sstable ","messagePattern":"Index summary component of sstable ","errorType":"exception","errorClass":"NoSuchFileException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/io/sstable/format/big/BigTableVerifier.java","lineNumber":208,"sourceCode":"                             duplicateRows,\n                             keyString, first.clustering().toString(sstable.metadata()),\n                             sstable.metadata().keyspace,\n                             sstable.metadata().name,\n                             sstable,\n                             dateString(firstMinTs), dateString(firstMaxTs),\n                             dateString(minTimestamp), dateString(maxTimestamp), minTimestamp == maxTimestamp);\n    }\n\n    private String dateString(long time)\n    {\n        return Instant.ofEpochMilli(TimeUnit.MICROSECONDS.toMillis(time)).toString();\n    }\n\n    private void deserializeIndexSummary(SSTableReader sstable) throws IOException\n    {\n        IndexSummaryComponent summaryComponent = IndexSummaryComponent.load(sstable.descriptor.fileFor(Components.SUMMARY), cfs.metadata());\n        if (summaryComponent == null)\n            throw new NoSuchFileException(\"Index summary component of sstable \" + sstable.descriptor + \" is missing\");\n        FileUtils.closeQuietly(summaryComponent.indexSummary);\n    }\n}\n","sourceCodeStart":190,"sourceCodeEnd":212,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/io/sstable/format/big/BigTableVerifier.java#L190-L212","documentation":"Raised (as NoSuchFileException) when the Summary component file for an SSTable cannot be loaded during verification — IndexSummaryComponent.load returned null, meaning the summary file is missing or unreadable/unparseable. The verifier treats a missing summary as a hard verification failure.","triggerScenarios":"`nodetool verify` on an SSTable descriptor whose SUMMARY component (Summary.db) file is absent or unreadable, e.g. incomplete copy of SSTable files or deleted file.","commonSituations":"Manually copying only Data.db/Index.db; cleanup scripts deleting 'extra' files; crash during summary rebuild; wrong permissions.","solutions":["Restore the Summary.db file from backup or run `nodetool scrub` (rebuilds summaries), or `sstablescrub`","Delete the broken SSTable and repair the range from replicas","Rebuild summaries via `sstablemetadata`/offline tools or restart with summary rebuild on load"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"File summary = descriptor.fileFor(Components.SUMMARY);\nif (summary == null || !summary.exists()) {\n    // regenerate via scrub or restore from snapshot before loading\n}","typeGuard":null,"tryCatchPattern":"try { component = IndexSummaryComponent.load(file, metadata); }\ncatch (NoSuchFileException e) { logger.warn(\"Missing Summary.db for {}\", descriptor); regenerateSummary(descriptor); }","preventionTips":["Copy ALL SSTable components together (Data.db, Index.db, Summary.db, etc.)","Do not delete 'extra' files in the data directory","Use nodetool snapshot for consistent backups"],"tags":["sstable","summary","missing-file","verify"],"backgroundTag":"file-not-found","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}