I am experiencing intermittent failures to close the Berkeley database when running slapadd using quick mode on Windows. I have reproduced the problem using OpenLDAP 2.4.16, 2.4.15, and 2.3.42. I am using BDB 4.4.20 with all applicable patches. The problem only occurs when quick mode is used. I have not seen the problem on Linux systems. Here are the steps that (sometimes) reproduce the problem:
1. Start slapd to create initial database files: slapd -f slapd.conf -d -1 2. Stop slapd using CTRL-C. 3. Add initial data: slapadd -f slapd.conf -l initialData.ldif -q
When the problem occurs, slapadd displays the following error message: C:\openldap>slapadd -f slapd.conf -l initialData.ldif -q Closing DB... bdb_db_close: database "dc=Nortel,dc=com": alock_close failed
Here is the weird part - the problem is difficult to reproduce, unless you set your system clock to certain times on May 25, 2009. For example, I can reproduce the problem 100% of the time when I set my system clock to May 25, 2009 at 2:00 PM. When my system clock has other dates, the problem is very difficult to reproduce. In fact, if I switch my system clock back and forth between May 25, 2009 at 2:00 PM and May 26, 2009 at 2:00 PM while repeatedly running slapadd with quick mode (-q) and continue-on-error (-c), the problem always occurs on May 25 but never on May 26.
My slapd.conf and initialData.ldif are minimal:
C:\openldap>more slapd.conf ucdata-path data include core.schema include cosine.schema backend bdb database bdb suffix "dc=Nortel,dc=com" directory data
C:\openldap>more initialData.ldif dn: dc=Nortel,dc=com objectclass: top objectClass: organizationalUnit objectclass: dcObject ou: Nortel dc: Nortel
Any help is appreciated.
Kyle Blaney
Here is the weird part - the problem is difficult to reproduce, unless you set your system clock to certain times on May 25, 2009. For example, I can reproduce the problem 100% of the time when I set my system clock to May 25, 2009 at 2:00 PM. When my system clock has other dates, the problem is very difficult to reproduce. In fact, if I switch my system clock back and forth between May 25, 2009 at 2:00 PM and May 26, 2009 at 2:00 PM while repeatedly running slapadd with quick mode (-q) and continue-on-error (-c), the problem always occurs on May 25 but never on May 26.
Try setting breakpoints to see which case is causing alock_close to fail? Alock should not be particularly time-dependent.
Matthew Backes Symas Corporation mbackes@symas.com
openldap-software@openldap.org