Problem: Log Entries mdb_equality_candidates: (o) not indexed

ldap
ucs-4
problem

#1

Problem

You notice entries like these in your logfiles:

Nov 5 15:06:39 ucs slapd[1257]: <= mdb_equality_candidates: (o) not indexed
Nov 5 15:06:39 ucs slapd[1257]: <= mdb_equality_candidates: (o) not indexed

Solution

These entries indicate an attribute field not being indexed for faster search. In case you see these messages really often you might generate an index for the attributes in question (“o”).
Note: To create the index you have to stop your OpenLDAP server. This causes interruption in service. The indexing should not take more than a couple of minutes. Consider to perform these steps during maintenance.

systemctl stop slapd
/usr/share/univention-ldap/ldap_setup_index --add-eq o
systemctl start slapd

Additional Information

If you want to make sure more data is being indexed perform the following steps to find all attributes not indexed.

Step 1

First, make sure (r)syslog will log all messages from ldap and not suppress due to flooding:

ucr set syslog/limit/burst=0
ucr set syslog/limit/interval=0
systemctl restart rsyslog
systemctl restart syslog

Step 2

Enable debug logging for ldap:

ucr set ldap/debug/level=257
systemctl restart slapd

Step 3

Monitor logfile for matching entries

tail -f /var/log/syslog | grep "not indexed"

Step 4

Create the indexes as shown above