[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
slapd 2.0.7 hangs
Hi,
we are using openldap 2.0.7 on a debian (2.2) linux system as central
ldap server for one of our customers. It is used for doing unix
authentication via nss_ldap and pam_ldap and for win2k user
authentication via samba-tng.
We are facing the following problem:
About once every 4 weeks slapd stops working. The slapd process seems to
hang. It accepts new connections from clients but does not respond to
any client's 'search' operation.
The process keeps running accepting connections for several hours (about
7) till it runs out of open files. After this point no new connections
are accepted.
Restarting slapd gets things working again, but always one ldap object
seems to be corrupted. In our case it always seems to be an
'sambaAccount' object which is corrupted. (Used to store NT Mashine
accounts for Samba-TNG).
This corrupted object is still visible using an ldapbrowser but an
ldapsearch with 'uid=the_objects_uid' yields an empty result. Using an
ldapbrowser the uid attribute shows up the correct value.
After changing the uid attribute to a different value and changing it
back to it's original value it seems to be fully restored and the same
ldapsearch yields the correct sambaAccount object.
As the uid attribute seems to contain the correct value might it be
possible that the index gets corrupted when the slapd process hangs?
Does anybody know if this is a known problem with openldap 2.0.7
or does anybody have any other hints to avoid this? This situation is
especially annoying as a hanging slapd also stops accessing the machine
via ssh or console login. :-( At the moment we are using a 'every 5
minutes' cronjob to check the ldapserver and to restart it, if it hangs.
Thanks in advance,
Christoph
Our slapd.conf
# This is the main ldapd configuration file.
# Schema and objectClass definitions
include
/etc/ldap/schema/core.schema
include
/etc/ldap/schema/cosine.schema
include
/etc/ldap/schema/nis.schema
include
/etc/ldap/schema/inetorgperson.schema
include
/etc/ldap/schema/sambatng.schema-v3
include
/etc/ldap/schema/abookperson.schema
include
/etc/ldap/schema/misc.schema
include
/etc/ldap/schema/pingworks.schema
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck
on
# Where clients are refered to if no
# match is found locally
#referral
ldap://ldap.four11.com
# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile
/var/run/slapd.pid
# List of arguments that were passed to the server
argsfile
/var/run/slapd.args
# Read slapd.conf(5) for possible values
loglevel
0
#loglevel
256
# idletimeout
idletimeout
10800
#######################################################################
# ldbm database definitions
#######################################################################
# The backend type, ldbm, is the default standard
database
ldbm
# The base of your directory
suffix
"dc=dimensional,dc=de"
rootdn "uid=root,ou=People,dc=dimensional,dc=de"
rootpw "secret"
# Where the database file are physically stored
directory
"/var/lib/ldap"
# index definitions 2001-10-19
index default pres,eq
index cn,uid,uidNumber,gidNumber,ntUid,rid,groupRid
index memberUid,sambaMember pres,eq,sub
index objectclass eq
# Save the time that the entry gets modified
lastmod on
# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,dc=dimensional,dc=de"
#
by dnattr=owner write
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
access to attribute=userPassword
by dn="uid=root,ou=People,dc=dimensional,dc=de" write
by anonymous auth
by self write
by * none
# The admin dn has full write access
access to dn="ou=Contacts,dc=dimensional,dc=de"
by dn="uid=abook,ou=People,dc=dimensional,dc=de" write
by group="cn=ldapadmin,ou=Group,dc=dimensional,dc=de" write
by * read
access to *
by group="cn=ldapadmin,ou=Group,dc=dimensional,dc=de" write
by * read
# End of ldapd configuration file