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

Internal session pool may not reuse its session

    XMLWordPrintableJSON

Details

    • ALL
    • Sharding 2022-08-08, Sharding 2022-08-22
    • 7

    Description

      When the internal transaction API is used by a command in a session that is not a retryable write, it will use create a "child" session based on the user session for its transaction, using the InternalSessionPool to reuse the same child session for that user session. The API will return its session to the pool in the destructor for one of its types (Transaction), which due to `shared_from_this` uses extending its lifetime may lead the destructor to run on an executor thread instead of the user command's thread. If this runs slow enough, a subsequent command for the same user session may fail to find the child session in the pool and create a new one, preventing session reuse.

      Attachments

        Activity

          People

            sanika.phanse@mongodb.com Sanika Phanse (Inactive)
            jack.mulrow@mongodb.com Jack Mulrow
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: