Applying operations for a prepared transaction catches exceptions returns them as a Status. This escapes the caller's writeConflict retry block. The block re-throws a WriteConflict status to its exception, but fails to do the same for the TemporarilyUnavailableException (TUE) and trips an fassert.
We should at a minimum catch the TUE and rethrow it. Ideally, we should convert the code to throw directly instead of catching and returning a status.
- is duplicated by
-
SERVER-80461 Handle TemporarilyUnavailable and TransactionTooLargeForCache on _applyPrepareTransaction
- Closed
- related to
-
SERVER-94010 Delete transaction_too_large_for_cache/temporarily_unavailable_on_secondary_transaction_application.js and replace with unit test
- Closed