We just had a problem, where slapd did not start up properly after machine was rebooted. It just kept waiting forever in futex call (according to strace). Deleting /var/lib/ldap/*/__db.* solved the problem. I am wondering - should may be /etc/rc.sysinit delete /var/lib/ldap/*/__db.* the same way it currently deletes /var/lib/rpm/__db*? P.S. Potentially related - bug 195920.
slapd has its own initscript; ergo this seems more appropriate to do it there?
(In reply to comment #1) > slapd has its own initscript; ergo this seems more appropriate to do it there? When slapd is being started, there is no way to know for sure whether something else is currently accessing the DB. I might be wrong, but my guess is that this is exactly the reason why it is done in rc.sysinit for the rpm DB. To be honest, I have no idea whether this would be the right thing to do for slapd, may be there is a reason why RPM DB is special... But there definitely needs to be something (and bug 195920 suggests that this something may be to have the ldap startup script to do a DB recovery when necessary).
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2007-0739.html