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