Ingress connection establishment rate limiter holds rejected connections on macOS

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Minor - P4
    • None
    • Affects Version/s: None
    • Component/s: None
    • Networking & Observability
    • OS X
    • Hide
      db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentRateLimiterEnabled: true });
      db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentRatePerSec: 20 });
      db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentBurstCapacitySecs: 1 });
      db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentMaxQueueDepth: 1 });
      // fire 100 parallel connections and tcpdump loopback - no FIN/RST on rejected connections
      
      Show
      db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentRateLimiterEnabled: true }); db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentRatePerSec: 20 }); db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentBurstCapacitySecs: 1 }); db.adminCommand({ setParameter: 1, ingressConnectionEstablishmentMaxQueueDepth: 1 }); // fire 100 parallel connections and tcpdump loopback - no FIN/RST on rejected connections
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      On 9.0.0-alpha0-4dc31f0f (macOS arm64), when max queue depth is exceeded, rejected connections are silently held open - the server completes the TCP handshake but sends no response or FIN.

      Behavior by server version:

      • 8.3.4 macOS: server sends TCP FIN on rejection - driver receives EOF
      • 9.0.0-alpha0 macOS: server accepts TCP but sends nothing - driver blocks indefinitely

      Drivers rely on receiving a network error during the hello handshake to apply SystemOverloadedError+RetryableError labels and avoid clearing the connection pool, per the CMAP spec and the SDAM Connection Pool Backpressure prose test.

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

              Created:
              Updated: