[SERVER-46698] Invariant that operations which are holding open an oplog hole cannot call blocking functions Created: 06/Mar/20  Updated: 29/Oct/23  Resolved: 12/May/20

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: 4.7.0

Type: Improvement Priority: Major - P3
Reporter: Daniel Gottlieb (Inactive) Assignee: James Heppenstall
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-48129 Invariant that operations which are h... Closed
Related
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2020-05-18
Participants:

 Description   

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


 Comments   
Comment by Githook User [ 12/May/20 ]

Author:

{'name': 'Jamie Heppenstall', 'email': 'jamie.heppenstall@mongodb.com', 'username': 'JamesHeppenstall'}

Message: SERVER-46698 Invariant that operations holding open an oplog hole cannot call blocking functions
Branch: master
https://github.com/mongodb/mongo/commit/02ceb3f342d4295aef49b3b1d5479930496186f0

Generated at Thu Feb 08 05:12:12 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.