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

Internal session pool may not reuse its session

    XMLWordPrintable

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

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: