This is a theoretical class of liveness bugs where operations cannot be replicated if a recovery unit with its commit timestamp set is prevented from committing/aborting.
Observing whether a recovery unit is keeping a hole open is relatively simple. The harder part is instrumenting all of the possible blocking calls. The initial version should strive to at least cover:
- Acquiring a lock
- Acquiring a storage engine ticket
- Acquiring a flow control ticket
- is depended on by
-
SERVER-48129 Invariant that operations which are holding open an oplog hole cannot block when acquiring locks
- Closed