-
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
-