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

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

||[2.2|https://github.com/apache/cassandra/compare/trunk...blerer:12539-2.2]|[utests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-2.2-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-2.2-dtest/]|
 
||[3.0|https://github.com/apache/cassandra/compare/trunk...blerer:12539-3.0]|[utests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-3.0-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-3.0-dtest/]|
 
||[3.11|https://github.com/apache/cassandra/compare/trunk...blerer:12539-3.11]|[utests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-3.11-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-3.11-dtest/]|
 
||[trunk|https://github.com/apache/cassandra/compare/trunk...blerer:12539-trunk]|[utests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-trunk-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-12539-trunk-dtest/]|

The patches for 2.2 and 3.0 are the same and the patches for 3.11 and trunk 
arethe same.

The patch removes the use of {{RandomAccessFile}} to resize the commitlog 
segment file.
As we do not recycle the CommitLog files in 2.2, it is not needed anymore. The 
creation of the {{MappedByteBuffer}} will automatically set the size of the 
file to {{DatabaseDescriptor.getCommitLogSegmentSize()}}. 

By not using an extra file pointer with the {{RandomAccessFile}}, we avoid the 
problem that had cause the empty commit log (which was running out of file 
pointers when resizing the file segement).

[~JoshuaMcKenzie] do you want to review 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
>            Assignee: Benjamin Lerer
>
> 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.15#6346)

Reply via email to