-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
ALL
-
Sharding 2022-08-08, Sharding 2022-08-22
-
7
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.
- is related to
-
SERVER-67466 Internal transactions API may be memory unsafe when outer OperationContext is interrupted
- Closed