Use a monotonic clock source in prepare conflict tracker

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.3.1
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Execution Team 2019-10-21
    • 9
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      curTimeMicros64() is not a reliable time source for the prepare conflict tracker. 

      Motivation: 

      PrepareConflictTracker::endPrepareConflict throws an invariant when curTime, computed with curTimeMicros64(), is less than _prepareConflictStartTime (also computed with curTimeMicros64() )

      Previously: we saw that curTime, when converted into Unix epoch time, correctly matched the time the invariant message was logged. However, _prepareConflictStart time, converted into Unix epoch time, was a future time that had not occurred yet. 

       

            Assignee:
            Haley Connelly
            Reporter:
            Haley Connelly
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: