Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-84117

Make Sessions uniquely owned by SessionManagers, which are uniquely owned by TransportLayers

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Service Arch
    • N&O Prioritized List

      SERVER-80769 moved several metrics (notably HelloMetrics) from ServiceContext to SessionManager, but due to loose lifecycle management of `shared_ptr<Session>` and the lack of requirement for a TransportLayer in unit tests which using replication logic, it's currently impossible to guarantee a SessionManager is available in all contexts which wish to mutate HelloMetrics.

      Resolve this by tightening up transport object ownership, particularly around the Session objects. This will also allow removing the dummy "transportlessHelloMetrics" container for when (during unit tests) Sessions are unassociated to SessionManagers.

            Assignee:
            backlog-server-servicearch [DO NOT USE] Backlog - Service Architecture
            Reporter:
            sara.golemon@mongodb.com Sara Golemon
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: