[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#7936) value search fails after changing matching rule



Full_Name: Arvid Requate
Version: 2.4.35
OS: Debian / UCS
URL: http://apt.univention.de/download/temp/openldap/
Submission from: (NULL) (82.198.197.8)


After adjusting a matching rule of an attribute ldapsearch for existing
attribute values returns unexpected results. As an example the log file and the
script provided in the URL show what happened:

A) Start with the normal inetorgperson.schema.

1. create a inetOrgPerson object with and uppercase string in "carLicense"
2. search for the attributes in with different filters (normal and extensive
matching)
3. change the EQUALITY matching rule for that attribute from caseIgnoreMatch to
caseExactMatch (either in slapd.conf and restart or in cn=config without
restart).
4. search again.

Expected result A.1: the normal search for the uppercase value should return the
value
The log file shows: the search for the uppercase value returns no result

Expected result A.2: the normal search for the lowercase value should return no
result
The log file shows: the search for the lowercase value returns a result

The same holds for the extensible :caseExactMatch: search.



B) The second, morempreressive, inverse test shows that this behaviour depends
on the matching rule that was in place at the time the obejct gets created:

Starting now with a caseExactMatch EQUALITY matching rule for "carLicense" I
repeat the test above:

1. create a inetOrgPerson object with and uppercase string in "carLicense"
2. search for the attributes in with different filters (normal and extensive
matching)
3. change the EQUALITY matching rule for that attribute from caseExactMatch to
caseIgnoreMatch (either in slapd.conf and restart or in cn=config without
restart).
4. search again.

Expected result B.1: the normal search for the uppercase value should return the
value
The log file shows: the search for the uppercase value returns no result

Expected result B.2: the normal search for the lowercase value should return the
value
The log file shows: the search for the lowercase value returns no result

Expected result B.3: the :caseIgnoreMatch: extensible filter should find the
value
The log file shows: the search for the lowerca v value returns no result



The provided shell script works by changing the schema directly via cn=config,
but the same results can be found when using static configuration+schema files
and restarting slapd after each schema modification.

No index was configured for the "carLicense" attribute and a bdb backend was
used. See the cn=config.ldif provided.