[SERVER-59219] Investigate whether the RecordStore oplogDiskLocRegister() and waitForAllEarlierOplogWritesToBeVisible() functions can deadlock due to ticket exhaustion Created: 10/Aug/21  Updated: 29/Oct/23  Resolved: 21/Oct/21

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

Type: Task Priority: Major - P3
Reporter: Gregory Wlodarek Assignee: Dan Larkin-York
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-59074 Do not acquire storage tickets just t... Closed
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2021-09-06, Execution Team 2021-09-20, Execution Team 2021-10-04, Execution Team 2021-10-18, Execution Team 2021-11-01
Participants:

 Description   

This is follow-up work from SERVER-59074, where we skip ticket acquisition for StorageInterfaceImpl::waitForAllEarlierOplogWritesToBeVisible() and StorageInterfaceImpl::oplogDiskLocRegister() due to a deadlock from ticket exhaustion while updating oplog visibility.

There are still other callers that call these functions directly from the RecordStore, circumventing the work in SERVER-59074. We should investigate whether it's feasible to add an assertion in these RecordStore functions that we are not holding a ticket.



 Comments   
Comment by Githook User [ 21/Oct/21 ]

Author:

{'name': 'Dan Larkin-York', 'email': 'dan.larkin-york@mongodb.com', 'username': 'dhly-etc'}

Message: SERVER-59219 Check oplog visibility lock semantics for possible deadlock
Branch: master
https://github.com/mongodb/mongo/commit/eedf0b9248334af020e16c7de6d5c9392d1981d7

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