Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-43871

Use a monotonic clock source in prepare conflict tracker

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

      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@mongodb.com Haley Connelly
            Reporter:
            haley.connelly@mongodb.com Haley Connelly
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: