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


Full_Name: Keith Bostic
Version: unknown.
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (

Hi, I'm Keith Bostic and I work for Sleepycat Software (the folks that
develop/support Berkeley DB).

We've been approached by an organization that's seeing corruption in
its databases and I'm trying to understand how OpenLdap uses Berkeley

Basically, I'm concerned about the define HAVE_BERKELEY_DB_THREAD.
(The only OpenLdap code I've reviewed is ldbm.c.)

It seems to me that if HAVE_BERKELEY_DB_THREAD is defined, multiple
OpenLdap threads can access Berkeley DB databases concurrently, and,
there is no provision to restrict this access to read-only threads.
This concerns me; usually, if multiple threads of control are in the
database code, and, one of those threads is updating the database,
there can be deadlocks which require transactional support to resolve.

Can someone please tell me:

+ If HAVE_BERKELEY_DB_THREAD is defined, can multiple OpenLdap threads
  of control access the Berkeley DB API concurrently?

+ If so, can one of those multiple threads be modifying the database?
  Can two of those multiple threads be modifying the database?


Keith Bostic
Sleepycat Software Inc.         bostic@sleepycat.com
118 Tower Rd.                   +1-781-259-3139
Lincoln, MA 01773               http://www.sleepycat.com