LDAP Master Server Problems

Download the authoritative guide: Cloud Computing 2019: Using the Cloud for Competitive Advantage

Share it on Twitter  
Share it on Facebook  
Share it on Google+
Share it on Linked in  

LDAP allows you to have a master+slave server setup, with automatic failover in case of problems or just to spread the load. This has obvious advantages, but it can hide problems with the master server.

If your master server is down but the slaves are OK, ldapsearch and other lookups will work fine. But if you try to modify the database (e.g., with ldapadd), you'll get this kind of error message:

ldap_add: Referral (10)
Slave servers can't modify the database, so it tries to redirect to the master, and fails. If you now use ldapsearch to look for your new entry, you will not find it.

You can confirm the diagnosis by trying: ldapsearch -H ldaps://masterldap.example.com to force a bind to the master server.

The next stage is to find out what's causing the problem. Set the loglevel in /etc/ldap/slapd.conf to 1, then restart slapd and check the logs.

Two common problems:

  • An old slapd process that hasn't been killed off properly. Check with ps and kill it if necessary.
  • An alock problem, which looks like this in the log:
    	slapd[27069]: bdb_db_open: alock package is unstable 
    	slapd[27069]: backend_startup_one: bi_db_open failed! (-1) 
    To resolve, remove the /var/lib/ldap/alock file (or check your slapd.conf for your local data directory). Run db_recover to fix the database, or just restart slapd and it should recover itself. You may need to give it a little time or restart it again.

Remember to return the loglevel to normal afterward, or the server will be very slow. Also, consider using monitoring software to catch these silent problems!

This article was first published on ServerWatch.com.

Submit a Comment

Loading Comments...