Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1179763

Summary: COS cache doesn't properly mark vattr cache as invalid when there are multiple suffixes
Product: Red Hat Enterprise Linux 6 Reporter: mreynolds
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.6CC: jgalipea, mreynolds, nhosoi, nkinder, rmeggins, sramling
Target Milestone: rc   
Target Release: 6.7   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.15-51.el6 Doc Type: Bug Fix
Doc Text:
When there are multiple suffixes and there is a chance to rebuild the COS cache, if the last suffix happened not to contain any COS entries, the cache rebuild was not correctly applied and obsolete COS attribute and values were returned. The bug was fixed.
Story Points: ---
Clone Of: 1179370 Environment:
Last Closed: 2015-07-22 06:36:49 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:
Bug Depends On: 1179370, 1259546    
Bug Blocks:    

Description mreynolds 2015-01-07 14:03:56 UTC
+++ This bug was initially created as a clone of Bug #1179370 +++

This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/47981

If there are multiple suffixes, and one does not have any COS definitions, it will not invalidate the vattr cache after rebuilding the COS cache, and already cached entries will not reflect the new COS template/definition changes.

Comment 2 Sankar Ramalingam 2015-01-08 09:11:59 UTC
Request you to add steps to reproduce.

Comment 3 mreynolds 2015-01-08 16:33:46 UTC
Verification Steps

[1]  Install DS using "dc=example,dc=com"
[2]  Add a second suffix: "o=netscaperoot"
[3]  create an ou and a user entry: 

 - ou=level1,dc=example,dc=com
 - uid=user1,ou=level1,dc=example,dc=com


[3]  Add a subtree password policy

ldapmodify ...
dn: cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: add
objectClass: nsContainer
objectClass: top
cn: nsPwPolicyContainer

dn: cn=cn\3DnsPwPolicyEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: add
objectClass: ldapsubentry
objectClass: passwordpolicy
objectClass: top
cn: cn=nsPwPolicyEntry,ou=level1,dc=example,dc=com

dn: cn=cn\3DnsPwTemplateEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: add
objectClass: extensibleObject
objectClass: costemplate
objectClass: ldapsubentry
objectClass: top
cosPriority: 1
pwdpolicysubentry: cn=cn\3DnsPwPolicyEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3
 Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
cn: cn=nsPwTemplateEntry,ou=level1,dc=example,dc=com

dn: cn=nsPwPolicy_CoS,ou=level1,dc=example,dc=com
changetype: add
objectClass: ldapsubentry
objectClass: cosSuperDefinition
objectClass: cosPointerDefinition
objectClass: top
costemplatedn: cn=cn\3DnsPwTemplateEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dc
 om,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
cosAttribute: pwdpolicysubentry default operational-default
cn: nsPwPolicy_CoS

dn: cn="cn=nsPwPolicyEntry,ou=level1,dc=example,dc=com",cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: modify
replace: passwordMustChange
passwordMustChange: off
-
replace: passwordExp
passwordExp: off
-
replace: passwordHistory
passwordHistory: off
-
replace: passwordMinAge
passwordMinAge: 0
-
replace: passwordChange
passwordChange: off
-
replace: passwordStorageScheme
passwordStorageScheme: ssha
-


[4]  Then search on the user and make sure it has a 'pwdpolicysubentry' attribute

ldapsearch -D "cn=directory manager" -w password -b "dc=example,dc=com" uid=user1 pwdpolicysubentry


[5]  Remove the subtree password policy

ldapmodify ...
dn: cn=cn\3DnsPwPolicyEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: delete

dn: cn=cn\3DnsPwTemplateEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: delete

dn: cn=nsPwPolicy_CoS,ou=level1,dc=example,dc=com
changetype: delete

[6]  Then search on the user and make sure it does NOT have a 'pwdpolicysubentry' attribute

ldapsearch -D "cn=directory manager" -w password -b "dc=example,dc=com" uid=user1 pwdpolicysubentry

[7]  Add the subtree password policy back

dn: cn=cn\3DnsPwPolicyEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: add
objectClass: ldapsubentry
objectClass: passwordpolicy
objectClass: top
cn: cn=nsPwPolicyEntry,ou=level1,dc=example,dc=com

dn: cn=cn\3DnsPwTemplateEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: add
objectClass: extensibleObject
objectClass: costemplate
objectClass: ldapsubentry
objectClass: top
cosPriority: 1
pwdpolicysubentry: cn=cn\3DnsPwPolicyEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3
 Dcom,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
cn: cn=nsPwTemplateEntry,ou=level1,dc=example,dc=com

dn: cn=nsPwPolicy_CoS,ou=level1,dc=example,dc=com
changetype: add
objectClass: ldapsubentry
objectClass: cosSuperDefinition
objectClass: cosPointerDefinition
objectClass: top
costemplatedn: cn=cn\3DnsPwTemplateEntry\2Cou\3Dlevel1\2Cdc\3Dexample\2Cdc\3Dc
 om,cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
cosAttribute: pwdpolicysubentry default operational-default
cn: nsPwPolicy_CoS

dn: cn="cn=nsPwPolicyEntry,ou=level1,dc=example,dc=com",cn=nsPwPolicyContainer,ou=level1,dc=example,dc=com
changetype: modify
replace: passwordMustChange
passwordMustChange: off
-
replace: passwordExp
passwordExp: off
-
replace: passwordHistory
passwordHistory: off
-
replace: passwordMinAge
passwordMinAge: 0
-
replace: passwordChange
passwordChange: off
-
replace: passwordStorageScheme
passwordStorageScheme: ssha

[8]  Then search on the user and make sure it has a 'pwdpolicysubentry' attribute

ldapsearch -D "cn=directory manager" -w password -b "dc=example,dc=com" uid=user1 pwdpolicysubentry

[9] done

Comment 5 Noriko Hosoi 2015-02-20 02:04:15 UTC
test script: dirsrvtests/tickets/ticket47981_test.py

Comment 6 Viktor Ashirov 2015-03-16 15:34:30 UTC
Build tested:
389-ds-base-1.2.11.15-52.el6.x86_64
389-ds-base-libs-1.2.11.15-52.el6.x86_64

============================= test session starts ==============================
platform linux2 -- Python 2.6.6 -- py-1.4.26 -- pytest-2.6.4 -- /usr/bin/python
collected 2 items 

ds/dirsrvtests/tickets/ticket47981_test.py::test_ticket47981 PASSED
ds/dirsrvtests/tickets/ticket47981_test.py::test_ticket47981_final PASSED

========================== 2 passed in 63.78 seconds ===========================

Marking as VERIFIED.

Comment 7 errata-xmlrpc 2015-07-22 06:36:49 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/RHBA-2015-1326.html