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

computeAtClusterTimeForOneShard should return the latest clusterTime if there is no cached lastCommittedOpTime

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.1.2
    • Affects Version/s: None
    • Component/s: Sharding
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Sharding 2018-08-13
    • 12

      computeAtClusterTimeForOneShard is used to select an atClusterTime for requests with snapshot level readConcern targeting a single shard (typically an unsharded collection). Currently it always returns the latest cached lastCommittedOpTime for the targeted shard from the ShardRegistry. The hook that updates this value does not run on all connections though, so it is possible for this value to be null, in which case atClusterTime would be a null logical time, which is not allowed and triggers an invariant.

      Instead, if there is no cached value, the function should return the latest in-memory cluster time from the logical clock.

            Assignee:
            jack.mulrow@mongodb.com Jack Mulrow
            Reporter:
            jack.mulrow@mongodb.com Jack Mulrow
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: