ChangeStream resume selects server twice

XMLWordPrintableJSON

    • None
    • Java Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      ChangeStream resume attempts reselect a server, violating spec.

      On resume, the driver selects a server twice. In temporary mixed-version deployments (e.g during rolling upgrades/downgrades), If the first selection is a server with max wire version < 7 and the second is >= 7, the decision about whether to include startAtOperationTime becomes inconsistent. Per spec, when there is no cached resumeToken, a saved operation time exists, and max wire version ≥ 7, the driver MUST set startAtOperationTime; otherwise it MUST NOT. We must select a server once per resume attempt and send the request to that server to ensure consistent parameter selection.

            Assignee:
            Unassigned
            Reporter:
            Slav Babanin
            None
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: