Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Done
-
None
-
None
-
Fully Compatible
-
ALL
-
Storage 2017-03-06
Description
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.
Attachments
Issue Links
- 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
-