Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-2219

ClusterClockAdvancingCoreSession should return the greater of the two ClusterTimes

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor - P4
    • Resolution: Fixed
    • Affects Version/s: 2.5
    • Fix Version/s: 2.7.0
    • Component/s: Connectivity
    • Labels:
      None

      Description

      As part of gossiping the cluster time the driver appends a $clusterTime element to the command sent to the server.

      The code in CommandUsingCommandMessageWireProtocol looks like this:

      var clusterTimeElement = new BsonElement("$clusterTime", _session.ClusterTime);
      extraElements.Add(clusterTimeElement);
      

      The driver is supposed to send the greater of the session's ClusterTime and the cluster's ClusterTime. The line of code as written above assumes that the _session value is an instance of ClusterClockAdvancingClusterTime and that ClusterClockAdvancingClusterTime will be the one to compare the two ClusterTimes and return the greater of the two.

      The current implementation of ClusterClockAdvancingClusterTime neglected to do that.

      ClusterClockAdvancingClusterTime needs to override the ClusterTime property to return the greater of the two ClusterTimes.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: