Uploaded image for project: 'Compass '
  1. Compass
  2. COMPASS-7034

Investigate changes in NODE-5228: ConnectionPoolCreatedEvent is not spec compliant as it contains the entire MongoClientOptions instance

    • Type: Icon: Investigation Investigation
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • No version
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Not Needed
    • Iteration Iguanodon

      Per the CMAP Specification, when a PoolCreatedEvent is sent it should only contain any non-default pool options:

      /**
       *  Emitted when a Connection Pool is created
       */
      interface PoolCreatedEvent {
        /**
         *  The ServerAddress of the Endpoint the pool is attempting to connect to.
         */
        address: string;
      
        /**
         *  Any non-default pool options that were set on this Connection Pool.
         */
        options: {...}
      }
      

      AC

      Implementation Requirements

      • Change ConnectionPoolCreatedEvent constructor to pick the following fields from the ConnectionPoolOptions
        • maxPoolSize
        • minPoolSize
        • maxIdleTileMS
        • maxConnecting
        • waitQueueTimeoutMS
      • Check whether or not the Unified Test Runner has extra logic that allowed it pass with the additional fields present. If this is the case, remove this extra logic 

      Testing Requirements

      • Add integration test that checks that we only get the fields listed in the implementation requirements when a ConnectionPoolCreatedEvent is emitted by the client
      • Add a unit test that checks that we only pick the fields listed in the implementation requirements when a ConnectionPoolCreatedEvent is constructed.

            Assignee:
            Unassigned Unassigned
            Reporter:
            dbeng-pm-bot PM Bot
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: