Details
-
Bug
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
ALL
-
Sharding 2022-03-07
-
133
Description
Currently, the transaction API's TransactionWithRetries::runSync method will create ExecutorFutures to call methods on its private member _internalTxn, which actually runs the transaction's commands. These futures don't guarantee the TransactionWithRetries will be in scope when they run though, potentially leading to errors. Instead, TransactionWithRetries shouldn't use an executor at all and leave that to the Transaction class, which is already a shared pointer and can extend its lifetime with shared_from_this().