cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Coli (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-4782) Commitlog not replayed after restart
Date Wed, 28 Oct 2015 17:59:27 GMT

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

Robert Coli commented on CASSANDRA-4782:
----------------------------------------

[~htoulan] :

1) JIRA is not a support forum, generally. You would get a better response from the #cassandra
IRC channel on freenode or the cassandra-user@ mailing list.

2) Cassandra 1.1.0 is an extremely old and extremely broken version. You should update to
at least the final released version of the 1.1 line. Much better would be (first 1.2.x and
then) at least the most recent 2.0.x version.

3) No commit log replay bug, including this one, should be capable of losing data if you write
with a sufficient ConsistencyLevel and Replication Factor and repair regularly.

> Commitlog not replayed after restart
> ------------------------------------
>
>                 Key: CASSANDRA-4782
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4782
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.1.0
>            Reporter: Fabien Rousseau
>            Assignee: Jonathan Ellis
>            Priority: Critical
>             Fix For: 1.1.6
>
>         Attachments: 4782.txt
>
>
> It seems that there are two corner cases where commitlog is not replayed after a restart
:
>  - After a reboot of a server + restart of cassandra (1.1.0 to 1.1.4)
>  - After doing an upgrade from cassandra 1.1.X to cassandra 1.1.5
> This is due to the fact that the commitlog segment id should always be an  incrementing
number (see this condition : https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogReplayer.java#L247
)
> But this assertion can be broken :
> In the first case, it is generated by System.nanoTime() but it seems that System.nanoTime()
is using the boot time as the base/reference (at least on java6 & linux), thus after a
reboot, System.nanoTime() can return a lower number than before the reboot (and the javadoc
says the reference is a relative point in time...)
> In the second case, this was introduced by #4601 (which changes System.nanoTime() by
System.currentTimeMillis() thus people starting with 1.1.5 are safe)
> This could explain the following tickets : #4741 and #4481



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message