We are working on a project that could relieve from programmer
the burden of reasoning about deadlocks, races etc.
Our study of the latest OpenLDAP source code shows the following
susceptible to deadlock.
- monitor_cache_get at servers/slapd/back-monitor/cache.c:163
waiting for mp_mutex while holding mi_cache_mutex
- monitor_cache_release at servers/slapd/back-monitor/cache.c:366
waiting for mi_cache_mutex while holding mp_mutex
We have not verified this in production run, which could
be difficult. Any comment would be greatly appreciated.