Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Fix Version/s: 1.1.6
    • Component/s: None
    • Labels:
      None

      Description

      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

      1. 4782.txt
        3 kB
        Jonathan Ellis

        Activity

        Fabien Rousseau created issue -
        Jonathan Ellis made changes -
        Field Original Value New Value
        Assignee Jonathan Ellis [ jbellis ]
        Fix Version/s 1.1.6 [ 12323257 ]
        Affects Version/s 1.1.1 [ 12319857 ]
        Affects Version/s 1.1.2 [ 12321445 ]
        Affects Version/s 1.1.3 [ 12321881 ]
        Affects Version/s 1.1.4 [ 12322490 ]
        Affects Version/s 1.1.5 [ 12322941 ]
        Priority Major [ 3 ] Critical [ 2 ]
        Jonathan Ellis made changes -
        Attachment 4782.txt [ 12548586 ]
        Jonathan Ellis made changes -
        Attachment 4782.txt [ 12548586 ]
        Jonathan Ellis made changes -
        Attachment 4782.txt [ 12548588 ]
        Jonathan Ellis made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Reviewer frousseau
        Resolution Fixed [ 1 ]
        Gavin made changes -
        Workflow no-reopen-closed, patch-avail [ 12728936 ] patch-available, re-open possible [ 12753439 ]
        Gavin made changes -
        Workflow patch-available, re-open possible [ 12753439 ] reopen-resolved, no closed status, patch-avail, testing [ 12758732 ]

          People

          • Assignee:
            Jonathan Ellis
            Reporter:
            Fabien Rousseau
            Reviewer:
            Fabien Rousseau
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development