• Type: Icon: Sub-task Sub-task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.6.0
    • Affects Version/s: None
    • Component/s: None
    • 2
    • Not Needed
    • Not Needed
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?

      Use Case

      As a CSOT developer,
      I want a clearly defined timeout abstraction,
      So that that timeout logic can be consolidated and easily reasoned about during the CSOT implementation.

      User Impact

      • n/a - refactor

      Dependencies

      • n/a

      Unknowns

      • n/a

      Acceptance Criteria

      Implementation Requirements

      • Introduce a new class that extends from Promise
        • Always rejects when the timeout expires
        • Has properties that indicate start, end, is timed out, and remaining time
      • If timeoutMS is provided to AbstractOperation create a timeout promise
      • Introduce a new CSOT Error class
        • Implement a type narrowing helper on the class
      • Replace TimeoutController with Timeout in Topology.selectServer and ConnectionPool.checkOut

      Testing Requirements

      • Ensure all existing unit and integration tests pass.
      • If timeoutMS is 0 the promise never rejects

      Documentation Requirements

      • n/a

      Follow Up Requirements

      • n/a

            Assignee:
            warren.james@mongodb.com Warren James
            Reporter:
            bailey.pearson@mongodb.com Bailey Pearson
            Neal Beeken
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: