-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
ALL
-
v5.0, v4.4, v4.2
-
Repl 2021-06-28, Repl 2021-07-12, Repl 2021-07-26
It is possible for a stepdown to start due to some other primary stepping up while we are still holding the RSTL from a step-up attempt. If we do this while we have a transaction prepared, we will uassert when trying to check out a session to restore the prepared transactions locks.
The uassert will cause use to exit signalDrainComplete() without actually signalling that the drain is complete. At that point the oplog applier (and thus replication) will be stuck.
In addition to fixing this, we should probably mark signalDrainComplete() as "noexcept" so we crash instead of hanging if anything similar happens.
- duplicates
-
SERVER-57756 Race between concurrent stepdowns and applying transaction oplog entry
- Closed
- is related to
-
SERVER-58440 Mark signalDrainComplete as noexcept
- Closed