Verify monitor connections establishment errors

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Declined
    • Priority: Unknown
    • None
    • Component/s: Backpressure, SDAM
    • None

      Summary

      The client backpressure spec adds SystemOverloadedError and RetryableError labels to errors during connection establishment. The SDAM spec requires that errors with these labels must not trigger pool clearing or server description updates to Unknown.

      But existing unified spec tests only cover the application connection path (using appName for filtering failPoints for insertMany command). There are no tests verifying this behaviour for the server monitor's connection establishment path.

      The monitor has a distinct error flow: when its existing connection is broken, it creates a new connection via the same establishment path that adds backpressure labels. Without test coverage, drivers may implement SystemOverloadError check for application errors but miss the monitor path entirely - as was discovered in the Go driver during PR review.

      It seems that it can not be done with unified spec test because failpoints can not distinguish monitor connections from application connections, and timing control over monitor connection lifecycle varies.

      Motivation

      Who is the affected end user?

      Who are the stakeholders?

      How does this affect the end user?

      Are they blocked? Are they annoyed? Are they confused?

      How likely is it that this problem or use case will occur?

      Main path? Edge case?

      If the problem does occur, what are the consequences and how severe are they?

      Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can't complete?

      Is this issue urgent?

      Does this ticket have a required timeline? What is it?

      Is this ticket required by a downstream team?

      Needed by e.g. Atlas, Shell, Compass?

      Is this ticket only for tests?

      Does this ticket have any functional impact, or is it just test improvements?

      Acceptance Criteria

      Add a prose test to the SDAM that verifies, when the server monitor creates a new connection and encounters a backpressure-eligible network error during connection establishment, the driver must not clear the connection pool and must not mark the server Unknown.

            Assignee:
            Unassigned
            Reporter:
            Sergey Zelenov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: