[SERVER-40522] OplogSlotReserver must take a global IX lock Created: 08/Apr/19  Updated: 09/May/19  Resolved: 09/May/19

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

Type: Bug Priority: Major - P3
Reporter: Tess Avitabile (Inactive) Assignee: Siyuan Zhou
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-40498 Writing transaction oplog entries mus... Closed
Related
is related to SERVER-40498 Writing transaction oplog entries mus... Closed
Operating System: ALL
Sprint: Repl 2019-05-06, Repl 2019-05-20
Participants:

 Description   

When the OplogSlotReserver reserves oplog slots here, it is not necessarily holding any locks. This could result in illegal usage – it's a requirement to hold a Global IX lock when reserving oplog slots in order to conflict with shutdown and recover to timestamp. We do typically hold locks when the oplog slots are reserved, but the locker is stashed in a SideTransactionBlock here, and the locks can be released before we release the oplog slot, e.g. here. Thus the OplogSlotReserver should acquire its own Global IX lock.



 Comments   
Comment by Tess Avitabile (Inactive) [ 06/May/19 ]

Assigning to siyuan.zhou, since this will be fixed by the commit for SERVER-40498.

Generated at Thu Feb 08 04:55:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.