Bug 1117975

Summary: paged results control is not working in some cases when we have a subsuffix.
Product: Red Hat Enterprise Linux 7 Reporter: Noriko Hosoi <nhosoi>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 7.0CC: gparente, nkinder, rmeggins, vashirov
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.3.1-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 09:35:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Noriko Hosoi 2014-07-09 18:28:19 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/47824

If a request is sent to server using paged searches and the suffix has a subsuffix, the results corresponding to the subsuffix are not shown in the query when the number of records per page is less than cardinal of the main suffix. 

Hope it will be clear in the steps to reproduce:

- create a directory instance.
- create suffix o=redhat
- create subsuffix ou=subsuffix (parent o=redhat).

import a few entries as in attachment (see redhat.ldif and subsuffix.ldif).

ldapsearch the entire suffix with root entry as base dn and subtree scope. You will see all the entries.

Now use option "-E pr=<entries per page>/noprompt.

if <entries per page> is less than number of records in main suffix, the subsuffix entries will not appear in the request result.

if <entries per page> is greater or equal than number of records in the main suffix, we should see all the entries as requested.

Comment 2 Viktor Ashirov 2015-01-02 14:58:57 UTC
$ rpm -qa | grep 389
389-ds-base-libs-1.3.3.1-10.1.el7.x86_64
389-ds-base-1.3.3.1-10.1.el7.x86_64

On a fresh instance I created suffix o=redhat and subsuffix ou=subsuffix (with parent o=redhat).

Added ldifs from the upstream ticket:  
$ ldapmodify -D 'cn=Directory Manager' -w Secret123 -H ldap://localhost:389 -a -f redhat.ldif 
adding new entry "o=redhat"

adding new entry "ou=people,o=redhat"

adding new entry "cn=user0,ou=people,o=redhat"

adding new entry "cn=user1,ou=people,o=redhat"

adding new entry "cn=user2,ou=people,o=redhat"

adding new entry "cn=user3,ou=people,o=redhat"

$ ldapmodify -D 'cn=Directory Manager' -w Secret123 -H ldap://localhost:389 -a -f subsuffix.ldif 
adding new entry "ou=subsuffix,o=redhat"

adding new entry "cn=user5000,ou=subsuffix,o=redhat"

adding new entry "cn=user5001,ou=subsuffix,o=redhat"

adding new entry "cn=user5002,ou=subsuffix,o=redhat"

adding new entry "cn=user5003,ou=subsuffix,o=redhat"



$ ldapsearch -LLL -D "cn=Directory Manager" -w Secret123 -b o=redhat  -E pr=5/noprompt dn
dn: o=redhat

dn: ou=people,o=redhat

dn: cn=user0,ou=people,o=redhat

dn: cn=user1,ou=people,o=redhat

dn: cn=user2,ou=people,o=redhat

# pagedresults: estimate=6 cookie=MA==
dn: cn=user3,ou=people,o=redhat

# pagedresults: cookie=MA==
dn: ou=subsuffix,o=redhat

dn: cn=user5000,ou=subsuffix,o=redhat

dn: cn=user5001,ou=subsuffix,o=redhat

dn: cn=user5002,ou=subsuffix,o=redhat

dn: cn=user5003,ou=subsuffix,o=redhat

# pagedresults: cookie=

ldapsearch returns all entries as requested. Marking as VERIFIED.

Comment 3 Viktor Ashirov 2015-01-02 15:01:53 UTC
Correction: 
Build tested:
389-ds-base-1.3.3.1-10.el7.x86_64
389-ds-base-libs-1.3.3.1-10.el7.x86_64

Comment 5 errata-xmlrpc 2015-03-05 09:35:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0416.html