-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
ALL
-
Repl 2020-02-10
-
20
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)
- is caused by
-
SERVER-39364 Audit uses of setLastOpToSystemLastOpTime
- Closed
- is duplicated by
-
SERVER-45598 Complete TODO listed in SERVER-39364
- Closed