#48172 rhds rfe feature parity - add vlv sub suffix support
Closed: wontfix 3 years ago by mreynolds. Opened 8 years ago by nhosoi.

Description of problem:

$ ldapsearch -D "uid=xxxxxxxx,ou=xxx,ou=people,o=renault" -w - -S cn -x -G
0:1023:0:0 -b "ou=people,o=.." -s sub ... modifyTimestamp uid givenName
displayName sn uid mail postOfficeBox displayName telephoneNumber cn
-> stdout messages:
ldap_search: Not an LDAP errno 76
Server reported sorting error 53: unable to sort
Server reported sorting error 53: unable to sort
-> access log:
[20/Jan/2014:15:22:13 +0100] conn=391957 op=1 SRCH base="ou=people,o=..."
scope=2 filter="..." attrs="modifyTimestamp uid givenName displayName sn uid
mail postOfficeBox displayName telephoneNumber cn"
[20/Jan/2014:15:22:13 +0100] conn=391957 op=1 RESULT err=76 tag=101 nentries=0
etime=0.001000
-> error log: no message

The same command executed on Sun One DS returns the expected result (a list of
entries) and produces acces logs similar to above (with sort and VLV).
Is this issue linked to a limitation of RHDS 8.2 on VLV controls with a
multi-backend directory? If yes, does this limitation still exist with DS 9?
"

I added some in house test notes below showing it not possible to use VLV with
sub suffixes.

Steps to Reproduce:

  1. have RHEL 6.5 system installed with RHDS 9.1 or 389-ds-base

  2. create suffix

dn: cn=peopleexamplecom,cn=ldbm database,cn=plugins,cn=config
changetype: add
objectClass: top
objectClass: extensibleObject
objectClass: nsBackendInstance
cn: peopleexamplecom
nsslapd-suffix: ou=people,dc=example,dc=com
nsslapd-cachesize: -1
nsslapd-cachememsize: 10485760
nsslapd-directory: /var/lib/dirsrv/slapd-ca3899/db/peopleexamplecom
creatorsName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot
modifiersName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoo
t
createTimestamp: 20140204123242Z
modifyTimestamp: 20140204123242Z

dn: cn=ou\3Dpeople\2Cdc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
changetype: add
objectClass: top
objectClass: extensibleObject
objectClass: nsMappingTree
nsslapd-state: Backend
cn: ou=people,dc=example,dc=com
nsslapd-parent-suffix: dc=example,dc=com
nsslapd-backend: peopleexamplecom
creatorsName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot
modifiersName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoo
t
createTimestamp: 20140204123243Z
modifyTimestamp: 20140204123243Z

  1. create sub suffix

dn: cn=sub1people,cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: extensibleObject
objectClass: nsBackendInstance
cn: sub1people
creatorsName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot
modifiersName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoo
t
createTimestamp: 20140204165247Z
modifyTimestamp: 20140204165247Z
numSubordinates: 4
nsslapd-suffix: ou=sub1,ou=people,dc=example,dc=com
nsslapd-cachesize: -1
nsslapd-cachememsize: 10485760
nsslapd-readonly: off
nsslapd-require-index: off
nsslapd-directory: /var/lib/dirsrv/slapd-ca1/db/sub1people
nsslapd-dncachememsize: 10485760

dn: cn=ou\3Dsub1\2Cou\3Dpeople\2Cdc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=co
nfig
objectClass: top
objectClass: extensibleObject
objectClass: nsMappingTree
nsslapd-state: Backend
cn: ou=sub1,ou=people,dc=example,dc=com
nsslapd-parent-suffix: ou=people,dc=example,dc=com
nsslapd-backend: sub1people
creatorsName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot
modifiersName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoo
t
createTimestamp: 20140204165248Z
modifyTimestamp: 20140204165248Z

  1. populate with test entries

/etc/init.d/dirsrv stop ca1
/usr/lib64/dirsrv/slapd-ca1/ldif2db -n userRoot -i
~/1K.guest.dc.example.dc.com.20.groups.header.only.ldif
/usr/lib64/dirsrv/slapd-ca1/ldif2db -n peopleexamplecom -i
~/1K.guest.dc.example.dc.com.20.groups.people.only.ldif
/usr/lib64/dirsrv/slapd-ca1/ldif2db -n sub1people -i
~/1K.guest.dc.example.dc.com.20.groups.people.only.sub1.ldif
/etc/init.d/dirsrv start ca1

  1. configure VLV index

dn: cn=MCC ou=people dc=example dc=com,cn=peopleexamplecom,cn=ldbm
database,cn=plugins,cn=config
changetype: add
objectClass: top
objectClass: vlvSearch
cn: MCC ou=people dc=example dc=com
vlvBase: ou=people,dc=example,dc=com
vlvScope: 1
vlvFilter: (|(objectclass=*)(objectclass=ldapsubentry))
creatorsName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot
modifiersName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoo
t
createTimestamp: 20140204124213Z
modifyTimestamp: 20140204124213Z

dn: cn=by MCC ou=people dc=example dc=com,cn=MCC ou=people dc=example
dc=com,cn=peopleexamplecom,cn=ldbm database,cn=plugins,cn=config
changetype: add
objectClass: top
objectClass: vlvIndex
cn: by MCC ou=people dc=example dc=com
vlvSort: cn givenname o ou sn
creatorsName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot
modifiersName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoo
t
createTimestamp: 20140204124214Z
modifyTimestamp: 20140204124214Z

  1. create VLV index

dn: cn=index1391517734634,cn=index,cn=tasks,cn=config
changetype: add
objectClass: top
objectClass: extensibleObject
cn: index1391517734634
ttl: 4
nsinstance: peopleexamplecom
nsindexvlvattribute: by MCC ou=people dc=example dc=com
creatorsName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoot
modifiersName: uid=admin,ou=administrators,ou=topologymanagement,o=netscaperoo
t
createTimestamp: 20140204124214Z
modifyTimestamp: 20140204124214Z

Actual results:

tail -f /var/log/dirsrv/slapd-ca1/errors&

ldapsearch -LLLx -D "cn=directory manager" -w password -b
ou=people,dc=example,dc=com -s sub -E !vlv=0/10/0/0 -E !sss=cn
"(objectclass=*)" dn cn roomnumber
Virtual List View error (76)
Additional information: The VLV and sort controls cannot be processed

vlvResultpos=0 count=0 context= (53) Server is unwilling to perform

sortResult(53) Server is unwilling to perform

==> /var/log/dirsrv/slapd-ca1/errors <==
[04/Feb/2014:09:28:08 -0800] - ERROR: The VLV and sort controls cannot be
processed when more than one backend is involved. VLV indexes that will never
be used should be removed.


Metadata Update from @nhosoi:
- Issue set to the milestone: 1.3.6 backlog

7 years ago

Metadata Update from @mreynolds:
- Issue close_status updated to: None
- Issue set to the milestone: 1.4 backlog (was: 1.3.6 backlog)

6 years ago

Metadata Update from @mreynolds:
- Custom field reviewstatus adjusted to None
- Custom field version adjusted to None
- Issue tagged with: RFE

6 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/1503

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Login to comment on this ticket.

Metadata