-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Concurrency
-
None
-
Fully Compatible
-
ALL
-
Storage 2017-03-06
A common RAII idiom for locking is as follows:
{ stdx::lock_guard<Client> lk(*txn->getClient()); // Do stuff while holding the lock }
However, as the name of the object (lk) isn't referenced, this is very easily mistyped as:
{ stdx::lock_guard<Client> (*txn->getClient()); // Do stuff while surprisingly NOT holding the lock!!! }
So, check for any occurrences of temporaries with constructors and instead use named variables.
- depends on
-
SERVER-27920 Fix incorrect locking of Client context
- Closed
-
SERVER-27935 Fix serialization of concurrent fsyncLock execution
- Closed
-
SERVER-27936 fix improper release of locks in master/slave handleDuplicateDbName
- Closed
- is depended on by
-
SERVER-27984 Add clang-tidy run in addition to lint
- Closed