ConnectionPool exits backoff period after successful refreshes of already-established connections

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: 8.3.0-rc0
    • Component/s: None
    • None
    • Workload Resilience
    • ALL
    • Workload Resilience 2026-02-02, Workload Resilience 2026-02-16
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      The logic for transitioning the connection pool from a throttled state to a healthy one does not take into account whether the successful refresh was part of setup or not, causing the pool to not back off properly in response to establishment failures: https://github.com/mongodb/mongo/blob/5d2f604841b0816ee0272813536e0fe2d0f2f4fd/src/mongo/executor/connection_pool.cpp#L1236-L1241

      This transition should only occur when a setup refresh succeeds, which indicates that the rate limiter was passed.

      As part of this, we'll also need to fix the logic that extends the backoff period whenever it ends, rather than terminating it. This isn't an issue right now since the pool exits backoff whenever a refresh completes (success or failure, in the latter case becoming unhealthy), but this will need to be fixed as part of fixing that. https://github.com/mongodb/mongo/blob/5d2f604841b0816ee0272813536e0fe2d0f2f4fd/src/mongo/executor/connection_pool.cpp#L1207-L1208

            Assignee:
            Blake Oler
            Reporter:
            Patrick Freed
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: