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.
Yin Wang