cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Benjamin Lerer (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-12539) Empty CommitLog prevents restart
Date Mon, 31 Oct 2016 09:40:58 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-12539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15621732#comment-15621732
] 

Benjamin Lerer commented on CASSANDRA-12539:
--------------------------------------------

bq. There seems to be a very easy way to reproduce this condition

Which condition? Having an empty commit log segment?
An empty commit log segment can occurs for different reasons. Running out of file pointers
is only one of them. Cassandra has no way to know that it has an empty commit log segment
because it run out of file pointers before crashing. An empty commit log segment might have
been caused by another problem were you actually lost some data. In this case, you will actually
want to be notify of the problem.

Now, the real problem here is not that Cassandra does not ignore empty commit log in startup.
It is that it should not create an empty commit log in this corner case. I will look at what
I can do about it. 

 

> 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)

Mime
View raw message