ExportXMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: Load Balancer
    • None
    • None
    • Ruby Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      Background

      Since the migration from mlaunch to drivers-tools (RUBY-3472, June 2026), the Evergreen load-balanced variants silently ran as plain single-mongos sharded clusters, so every require_topology :load_balanced spec was skipped. RUBY-3946 re-wires the load-balanced CI so these specs actually run again. Doing so unmasks 8 pre-existing failures that have nothing to do with the RUBY-3946 connection-leak fix. They are temporarily skipped (referencing this ticket) so CI is green; this ticket tracks fixing them and removing the skips.

      Failures to fix

      1. CMAP event reason casing (3 tests)spec/spec_tests/load_balancers_spec.rb, sdam-error-handling.yml: "only connections for a specific serviceId are closed when pools are cleared", "errors during the initial connection hello are ignored", "stale errors are ignored".
      Assertion fails with Event reason does not match expectation: expected connectionError, actual connection_error. The driver (or the unified runner's event comparison) uses a snake_case reason where the unified spec expects the camelCase CMAP reason. Fix the driver/runner mapping; do not modify the synced YAML.

      2. Wait-queue timeout (2 tests) — load_balancers_spec.rb, wait-queue-timeouts.yml: "wait queue timeout errors include cursor statistics", "... include transaction statistics".
      Fail with Mongo::Error::ConnectionCheckOutTimeout against a maxPoolSize=1 pool. Needs investigation.

      3. Transaction pinning (2 tests)spec/integration/transaction_pinning_spec.rb "lb": "when no connection is available raises MissingConnection", "when connection is available uses the available connection". Pool-state expectations do not hold in the current LB deployment.

      4. Client construction (1 test)spec/integration/client_construction_spec.rb "when in load-balanced mode ... fails all operations". Expects Mongo::Error::MissingServiceId, but the haproxy->mongos deployment returns a serviceId so the operation succeeds. Reconcile the test expectation with the drivers-tools load-balanced deployment.

      Done when

      All 8 tests pass in the load-balanced Evergreen variant and the temporary skips referencing this ticket are removed.

            Assignee:
            Unassigned
            Reporter:
            Dmitry Rybakov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: