[ https://issues.apache.org/jira/browse/CASSANDRA-12539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15614670#comment-15614670 ]
Arvind Nithrakashyap commented on CASSANDRA-12539: -------------------------------------------------- The following patch seems to fix the issue {noformat} diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java index af8efb4..8f11d13 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java @@ -226,7 +226,7 @@ public class CommitLogReplayer { if (end != 0 || filecrc != 0) { - handleReplayError(false, + handleReplayError(tolerateTruncation, "Encountered bad header at position %d of commit log %s, with invalid CRC. " + "The end of segment marker should be zero.", offset, reader.getPath()); @@ -345,6 +345,14 @@ public class CommitLogReplayer return; } + + int currentFilePointer = (int) reader.getFilePointer(); + if (readSyncMarker(desc, currentFilePointer, reader, true) < 0) { + logger.info("Skipping empty logfile {}", file.getName()); + return; + } + reader.seek(currentFilePointer); + final long segmentId = desc.id; try { {noformat} > Empty CommitLog prevents restart > -------------------------------- > > Key: CASSANDRA-12539 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12539 > Project: Cassandra > Issue Type: Bug > Reporter: Stefano Ortolani > > A node just crashed (known cause: CASSANDRA-11594) but to my surprise (unlike > other time) restarting simply fails. > Checking the logs showed: > {noformat} > ERROR [main] 2016-08-25 17:05:22,611 JVMStabilityInspector.java:82 - Exiting > due to error while processing commit log during initialization. > org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: > Could not read commit log descriptor in file > /data/cassandra/commitlog/CommitLog-6-1468235564433.log > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.handleReplayError(CommitLogReplayer.java:650) > [apache-cassandra-3.0.8.jar:3.0.8] > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:327) > [apache-cassandra-3.0.8.jar:3.0.8] > at > org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:148) > [apache-cassandra-3.0.8.jar:3.0.8] > at > org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:181) > [apache-cassandra-3.0.8.jar:3.0.8] > at > org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:161) > [apache-cassandra-3.0.8.jar:3.0.8] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:289) > [apache-cassandra-3.0.8.jar:3.0.8] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:557) > [apache-cassandra-3.0.8.jar:3.0.8] > at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:685) > [apache-cassandra-3.0.8.jar:3.0.8] > INFO [main] 2016-08-25 17:08:56,944 YamlConfigurationLoader.java:85 - > Configuration location: file:/etc/cassandra/cassandra.yaml > {noformat} > Deleting the empty file fixes the problem. -- This message was sent by Atlassian JIRA (v6.3.4#6332)