-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Catalog and Routing
-
2
-
None
-
None
-
None
-
None
-
None
-
None
-
None
TSAN supports tagging custom mutex implementations with annotations so that they also participate in the various checks TSAN performs, e.g. potential deadlock detection.
This is the interface, for instance when read locking a resource we'd need to call __tsan_mutex_pre_lock(&lock, __tsan_mutex_read_lock)
This would extend the deadlock detector introduced by SERVER-99150
Some open questions are:
- TSAN requires an address to the mutex, our locks are identified by ResourceIds. One idea jordi.olivares-provencio@mongodb.com proposed is to have a global registry of ResourceIds in a std::set that we can reference, since it guarantees pointer stability.
- Can we easily bypass the checks when we want? For instance for multi document transactions. We might need a wrapper to the TSAN APIs that checks these special cases.
- duplicates
-
SERVER-99929 Introduce debug-only uninterruptible ResourceMutex for CSR/DSS
-
- Closed
-
- related to
-
SERVER-99150 Make threads always acquire locks with strict ordering
-
- Closed
-