-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Replication
-
ALL
-
105
The call FcvOpObserver::_setVersion is run inside an onCommit handler, which is essentially noexcept (it calls terminate() manually on exception). However, killSessionsAbortUnpreparedTransactions, which it calls, is an interrupt point, so we can be interrupted (e.g. by stepdown, or even a user kill) and therefore crash.
This is essentially a critical section – once we have committed the FCV update we MUST kill all the transactions and complete the _setVersion handler. But it's run from an (interruptable) client session.
- is related to
-
SERVER-82223 Commit handler in fCV op observer is susceptible to interruption
- Closed