[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
objectClass index from slapd.conf is not working
- To: openldap-bugs@openldap.org
- Subject: objectClass index from slapd.conf is not working
- From: tim stone <timstone10001@googlemail.com>
- Date: Wed, 1 Sep 2010 18:15:54 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:received:date:message-id :subject:from:to:content-type; bh=lNidA63UpD12A7K03/FHv388UEMIHGDOp4yJHs9Mdrs=; b=MtCWBd40tfOoQuUb1BK8gVU+VLYMKkWzcPMdKuhrVFg7gwApn6pjlBOtw377yWS1I6 Y5QZRzZaXzj4hGZGLLKMy81YqLxOAFfnvuwGpFlvmEbNJroEGnqdPYGp6QCbU5Zbvhal HFpc4I5OKEDUCJSa+qsxQMKTmZMU4GXql+D2s=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=dCYZf7eesvxbWSeUXaPbC75J3WvWUOJ5hhSBvb9BcuHjKFnt3ksHLfnG6FKJ8J9AjL zHpcepNixCMmXO2hRS4IPRu3YSW7byEDzdvZrFh4NSYjsmSoWmuazWLlFiXCAUYHv51+ Jm32Lgm8qIU/7xE2OrtIAxy7swct0V/lz1P8o=
Hello,
I've a strange behavior while using index objectClass for searching.
In my slapd.conf I have defined the index in the database section:
index objectClass eq
Other indexes follows in the config. All of them working fine.
If I search via ldapsearch like:
ldapsearch -x -h localhost -w password -D"cn=admin,ou=root" -b"ou=root" "(objectclass=Guest)"
I can find following Message in the syslog (loglevel -1):
Sep 1 14:02:52 LDAP01 slapd[17856]: EQUALITY
Sep 1 14:02:52 LDAP01 slapd[17856]: => bdb_equality_candidates (objectClass)
Sep 1 14:02:52 LDAP01 slapd[17856]: => key_read
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_index_read: failed (-30989)
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_equality_candidates: id=0, first=0, last=0
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_filter_candidates: id=0 first=0 last=0
Sep 1 14:02:52 LDAP01 slapd[17856]: => bdb_filter_candidates
Sep 1 14:02:52 LDAP01 slapd[17856]: EQUALITY
Sep 1 14:02:52 LDAP01 slapd[17856]: => bdb_equality_candidates (objectClass)
Sep 1 14:02:52 LDAP01 slapd[17856]: => key_read
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_index_read 355545 candidates
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_equality_candidates: id=-1, first=228, last=355772
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_filter_candidates: id=-1 first=228 last=355772
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_list_candidates: id=-1 first=228 last=355772
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_filter_candidates: id=-1 first=228 last=355772
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_list_candidates: id=-1 first=112277 last=355755
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_filter_candidates: id=-1 first=112277 last=355755
Sep 1 14:02:52 LDAP01 slapd[17856]: bdb_search_candidates: id=-1 first=112277 last=355755
Sep 1 14:02:52 LDAP01 slapd[17856]: => test_filter
Sep 1 14:02:52 LDAP01 slapd[17856]: EQUALITY
Sep 1 14:02:52 LDAP01 slapd[17856]: <= test_filter 5
Sep 1 14:02:52 LDAP01 slapd[17856]: bdb_search: 112277 does not match filter
Sep 1 14:02:52 LDAP01 slapd[17856]: entry_decode: "cn=Aaa,cn=Bbb,...
Sep 1 14:02:52 LDAP01 slapd[17856]: <= entry_decode(cn=Aaa,cn=Bbb,...
Sep 1 14:02:52 LDAP01 slapd[17856]: => bdb_dn2id("cn=aaa,cn=bbb,...
Sep 1 14:02:52 LDAP01 slapd[17856]: <= bdb_dn2id: got id=0x1b696
Sep 1 14:02:52 LDAP01 slapd[17856]: => test_filter
Sep 1 14:02:52 LDAP01 slapd[17856]: EQUALITY
Sep 1 14:02:52 LDAP01 slapd[17856] ... all other entires following...
As result, the entires are found, but not in the index and the search takes a very long time.
Afther this, I have rebuild the complete database via slapcat/slapadd, rebuild the index for objetClass, but nothing helped.
In tried the test above on:
* OpenSuSE 11.1 and openLDAP 2.4.21 and 2.4.23 (linked against libdb-4.5)
* OpenSuSE 11.0 and openLDAP 2.4.9 (linked against libdb-4.5)
* Debian Lenny and openLDAP 2.4.11 (linked against libdb-4.2)
with different databases and a search against a objectClass.
If I try another index (not objectClass) from the slapd.conf the index works, example:
ldapsearch -x -h localhost -w password -D"cn=admin,ou=root" -b"ou=root" "(Pk=1234-234)"
Sep 1 14:03:44 LDAP01 slapd[17856]: => bdb_equality_candidates (Pk)
Sep 1 14:03:44 LDAP01 slapd[17856]: => key_read
Sep 1 14:03:44 LDAP01 slapd[17856]: <= bdb_index_read 1 candidates
Sep 1 14:03:44 LDAP01 slapd[17856]: <= bdb_equality_candidates: id=1, first=112838, last=112838
Sep 1 14:03:44 LDAP01 slapd[17856]: <= bdb_filter_candidates: id=1 first=112838 last=112838
Sep 1 14:03:44 LDAP01 slapd[17856]: <= bdb_list_candidates: id=1 first=112838 last=112838
Sep 1 14:03:44 LDAP01 slapd[17856]: <= bdb_filter_candidates: id=1 first=112838 last=112838
Sep 1 14:03:44 LDAP01 slapd[17856]: <= bdb_list_candidates: id=1 first=112838 last=112838
Sep 1 14:03:44 LDAP01 slapd[17856]: <= bdb_filter_candidates: id=1 first=112838 last=112838
Sep 1 14:03:44 LDAP01 slapd[17856]: bdb_search_candidates: id=1 first=112838 last=112838
Sep 1 14:03:44 LDAP01 slapd[17856]: => test_filter
Sep 1 14:03:44 LDAP01 slapd[17856]: EQUALITY
Sep 1 14:03:44 LDAP01 slapd[17856]: <= test_filter 6
Sep 1 14:03:44 LDAP01 slapd[17856]: => send_search_entry: conn 1002 dn="cn=Fff,cn=Eee,...
Sep 1 14:03:44 LDAP01 slapd[17856]: <= send_search_entry: conn 1002 exit.
Sep 1 14:03:44 LDAP01 slapd[17856]: send_ldap_result: conn=1002 op=1 p=3
Sep 1 14:03:44 LDAP01 slapd[17856]: send_ldap_response: msgid=2 tag=101 err=0
Sep 1 14:03:44 LDAP01 slapd[17856]: connection_get(12): got connid=1002
Sep 1 14:03:44 LDAP01 slapd[17856]: connection_read(12): checking for input on id=1002
Sep 1 14:03:44 LDAP01 slapd[17856]: op tag 0x42, time 1283342624
Sep 1 14:03:44 LDAP01 slapd[17856]: conn=1002 op=2 do_unbind
Sep 1 14:03:44 LDAP01 slapd[17856]: connection_close: conn=1002 sd=12
Why does only the objectClass index not work?
The only difference I can see, is that all other indexes are based on "normal" attributes. I don't know, if it is necessary, but for objectClass I can't find a attribute definition in the schema. In the core.schema is the attribute definition for objectClass deactivated (aka #)...
Kindly regards Tim Stone