[SERVER-32950] Global resource should participate in two-phase locking Created: 29/Jan/18  Updated: 29/Oct/23  Resolved: 08/Feb/18

Status: Closed
Project: Core Server
Component/s: Concurrency, Storage
Affects Version/s: 3.0.0, 3.2.18, 3.4.11, 3.6.2, 3.7.1
Fix Version/s: 3.7.2

Type: Improvement Priority: Major - P3
Reporter: Eric Milkie Assignee: Eric Milkie
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-33198 add unit tests for two-phase locking ... Closed
Backwards Compatibility: Fully Compatible
Sprint: Storage 2018-01-29, Storage 2018-02-12
Participants:

 Description   

Currently, the two-phase locking logic only affects mode X and IX locks, and only for database, collection, and metadata Resources.

Mode S and IS locks for any Resource, and Mode X and IX locks for global, mmapv1_flush, and mutex Resources do not participate in two-phase locking; such locks are released as soon as their holder destructs and are not held until the end of a containing WriteUnitOfWork.

This logic should be changed such that the Global resource participates in two-phase locking. Otherwise, it is possible to write code that has a Database resource locked but without an appropriate Global resource lock – a violation of locking rules.



 Comments   
Comment by Githook User [ 08/Feb/18 ]

Author:

{'email': 'milkie@10gen.com', 'name': 'Eric Milkie', 'username': 'milkie'}

Message: SERVER-32950 Global resource should participate in two-phase locking
Branch: master
https://github.com/mongodb/mongo/commit/29948ab155070f197fe4e6c635e689ce122d82ca

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