Details
-
Bug
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
Fully Compatible
-
ALL
-
Repl 2020-02-10
-
20
Description
After SERVER-39364, ReplClientInfo::setLastOpToSystemLastOpTime acquires a global IS lock and implicitly the RSTL lock in MODE IX. But when setLastOpToSystemLastOpTime is called on a retry of a prepared transaction, it breaks the contract that prepared transactions should not hold RSTL locks.
Updated: We dont have to call setLastOpToSystemLastOpTime, we can simply set client lastOp to max(prepareOpTime, lastAppliedOpTime)
Attachments
Issue Links
- is caused by
-
SERVER-39364 Audit uses of setLastOpToSystemLastOpTime
-
- Closed
-
- is duplicated by
-
SERVER-45598 Complete TODO listed in SERVER-39364
-
- Closed
-