Uploaded image for project: 'Rust Driver'
  1. Rust Driver
  2. RUST-1557

Driver does not update sessions support status when all servers in topology are unknown

    • Type: Icon: Bug Bug
    • Resolution: Gone away
    • Priority: Icon: Unknown Unknown
    • None
    • Affects Version/s: 2.3.0
    • Component/s: None
    • Labels:
      None

      The sessions spec requires the driver perform server selection in certain cases to determine if the topology supports sessions:

      If the TopologyDescription and connection type indicate that the driver is not connected to any servers, OR is not a direct connection AND is not connected to a data-bearing server then a driver must do a server selection for any server whose type is data-bearing. Server selection will either time out or result in a TopologyDescription that includes at least one connected, data-bearing server.

      The driver does this correctly at the very start of initializing a topology since the initial SessionSupportStatus is Undetermined, and we decide whether or not to perform a server selection based on whether the support status is set to Undetermined.

      However, we never set the SessionSupportStatus back to Undetermined, even if the topology changes such that the conditions above are met, e.g., if we are connected to a single-mongos sharded cluster and mark the mongos unknown due to a network error, we do not change the status.

      As a result, we do not do a server selection in these cases.

            Assignee:
            Unassigned Unassigned
            Reporter:
            kaitlin.mahar@mongodb.com Kaitlin Mahar
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: