[Date Prev][Date Next] [Chronological] [Thread] [Top]

back-bdb cache wrong lock ordering



Our study shows another potential deadlock in back-bdb/cache.c
OpenLDAP 2.4.8

In bdb_cache_release_all(), thread wants to lock the c_lru_mutex
at cache.c:1366, while it has the c_rwlock from cache.c:1364

In bdb_cache_delete_internal(), thread wants to lock the c_rwlock
at cache.c:1317, while it has the c_lru_mutex from callers,
bdb_cache_delete() at cache.c:1259, or bdb_cache_lru_purge() at
cache.c:652.

Note that two deadlock bugs of the same two mutexes have been
reported and verified in the issue tracking system

http://www.openldap.org/its/index.cgi/Software%20Bugs?id=4254

http://www.openldap.org/its/index.cgi/Software%20Bugs?id=3494

Yin Wang