Bug 1352121

Summary: [RFE] allow to enable MemberOf plugin in dedicated consumer
Product: Red Hat Enterprise Linux 7 Reporter: Hiroko Miura <hmiura>
Component: 389-ds-baseAssignee: thierry bordaz <tbordaz>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: high Docs Contact: Marc Muehlfeld <mmuehlfe>
Priority: unspecified    
Version: 7.2CC: amsharma, gparente, mreynolds, nkinder, pasik, rmeggins, tbordaz
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.7.5-5.el7 Doc Type: Enhancement
Doc Text:
Directory Server now supports enabling the *memberOf* plug-in on read-only replicas If you previously enabled the *memberOf* plug-in on a read-only Directory Server replica server, the plug-in failed to update member entries. To use the plug-in in a replication topology, you could only enable it on write-enabled servers, and replicate the *memberOf* attribute to read-only replicas. With this update, you can now alternatively enable the plug-in on all servers. As a result, you can use the plug-in on read-only servers the same as on write-enabled server. For further details, see https://access.redhat.com/documentation/en-us/red_hat_directory_server/10/html/administration_guide/advanced_entry_management#considerations_when_using_the_memberof_plug-in.
Story Points: ---
Clone Of:
: 1496350 (view as bug list) Environment:
Last Closed: 2018-04-10 14:15:15 UTC Type: Bug
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:    
Bug Blocks: 1420851, 1467835, 1472344    

Description Hiroko Miura 2016-07-01 16:42:50 UTC
Description of problem:

In MMR replication topology,  MemberOf plugin is enabled in all of replicas as documented in Admin GUide and memberofattr(e.g. memberOf)
is excluded in replication agreement for dedicated consumer,
replication of group member addition fails with err=10 as follows due to post operation of Memebrof Plugin.

access:
[30/Jun/2016:21:31:17 +0900] conn=17 op=5 MOD dn="cn=group1,ou=Groups,dc=example,dc=com"
[30/Jun/2016:21:31:17 +0900] conn=17 op=5 RESULT err=10 tag=103 nentries=0 etime=0 csn=577511150000000b0000

errors:
[30/Jun/2016:21:31:17 +0900] memberof-plugin - memberof_postop_modify: failed to add dn (cn=group1,ou=Groups,dc=example,dc=com) to target.  Error (10)


Because it is a read only consumer and updates are rejected also for
internal ops. 

Request to Enhancemate.
Please allow dedicated consumer to enable MemberOf Plugin.

Comment 3 mreynolds 2016-12-07 18:10:32 UTC
Upstream ticket:
https://fedorahosted.org/389/ticket/49064

Comment 5 thierry bordaz 2017-10-18 14:47:11 UTC
Fix pushed upstream (https://pagure.io/389-ds-base/issue/49064) in master and 1.3.7

Comment 7 Amita Sharma 2017-10-24 10:17:59 UTC
389-ds-base: 1.3.7.5-6.el7
nss: 3.33.0-2.el7
nspr: 4.17.0-1.el7
openldap: 2.4.44-5.el7
svrcore: 4.1.3-2.el7

rootdir: /mnt/tests/rhds/tests/upstream/ds/dirsrvtests/tests/tickets, inifile:
plugins: metadata-1.5.0, html-1.16.0
collected 1 item                                                                                                                                      

ticket49064_test.py::test_ticket49064 OK group dirsrv exists
OK user dirsrv exists
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39001, 'suffix': 'dc=example,dc=com', 'krb5_realm': None, 'deployed-dir': '/usr', 'inst-backupdir': '/tmp', 'hostname': 'localhost', 'server-id': 'master1', 'root-pw': 'password', 'root-dn': 'cn=Directory Manager', 'group-id': None, 'InstScriptsEnabled': None, 'user-id': None, 'ldap-secureport': None} was created.
INFO:lib389:Found entry dn: cn=replrepl,cn=config
cn: bind dn pseudo user
cn: replrepl
objectClass: top
objectClass: person
sn: bind dn pseudo user
userPassword: {SSHA512}CF3/LKR1YlwqbnNIkzoVaI5UudJj3SxuxwEznXzMusDsE1eCbnM3NcNyLZ57xqXMrFjs32EYyKvCsUmtVMxd78KrGwNSdcca


OK group dirsrv exists
OK user dirsrv exists
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39101, 'suffix': 'dc=example,dc=com', 'krb5_realm': None, 'deployed-dir': '/usr', 'inst-backupdir': '/tmp', 'hostname': 'localhost', 'server-id': 'hub1', 'root-pw': 'password', 'root-dn': 'cn=Directory Manager', 'group-id': None, 'InstScriptsEnabled': None, 'user-id': None, 'ldap-secureport': None} was created.
INFO:lib389:Found entry dn: cn=replrepl,cn=config
cn: bind dn pseudo user
cn: replrepl
objectClass: top
objectClass: person
sn: bind dn pseudo user
userPassword: {SSHA512}nYu+IWbEJcnvYxuggxUtM0Ee2X5wqHjP7b+sR7S+LD2frwnitL25r4e5kqQus1zFRnzMGL+qF+ZYPkV/c+83oN6xBS7ScK5f


OK group dirsrv exists
OK user dirsrv exists
INFO:lib389.topologies:Instance with parameters {'ldap-port': 39201, 'suffix': 'dc=example,dc=com', 'krb5_realm': None, 'deployed-dir': '/usr', 'inst-backupdir': '/tmp', 'hostname': 'localhost', 'server-id': 'consumer1', 'root-pw': 'password', 'root-dn': 'cn=Directory Manager', 'group-id': None, 'InstScriptsEnabled': None, 'user-id': None, 'ldap-secureport': None} was created.
INFO:lib389:Found entry dn: cn=replrepl,cn=config
cn: bind dn pseudo user
cn: replrepl
objectClass: top
objectClass: person
sn: bind dn pseudo user
userPassword: {SSHA512}/sj6lm0JdpI3WVk1jU6pHFU4yN/Ik982VlIX/n4SxmR8hPzs+1Q7i1z540UFu1Vc/o7Y9jbR1Y39q5feglaYM2Y2LQmZk5QS


INFO:Replica:Starting async replication cn=meTo_localhost:39101,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
('Update succeeded: status ', '0 Total update succeeded')
INFO:Replica:Starting async replication cn=meTo_localhost:39201,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
('Update succeeded: status ', '0 Total update succeeded')
INFO:dirsrvtests.tests.tickets.ticket49064_test:update cn=meTo_localhost:39101,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config to add nsDS5ReplicatedAttributeListTotal
INFO:dirsrvtests.tests.tickets.ticket49064_test:update cn=meTo_localhost:39201,cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config to add nsDS5ReplicatedAttributeListTotal
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com: memberof->cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com: memberof->cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com: memberof->cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_2,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:dirsrvtests.tests.tickets.ticket49064_test:output: Successfully added task entry "cn=memberOf_fixup_2017_10_24_6_14_0, cn=memberOf task, cn=tasks, cn=config"

INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=user_1,ou=people,dc=example,dc=com: memberof->cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=Groups,dc=example,dc=com
INFO:lib389:!!!!!!! cn=group_1,ou=groups,dc=example,dc=com
PASSEDInstance slapd-master1 removed.
Instance slapd-hub1 removed.
Instance slapd-consumer1 removed.


============================================================= 1 passed in 128.43 seconds =============================================================

Comment 12 errata-xmlrpc 2018-04-10 14:15:15 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://access.redhat.com/errata/RHBA-2018:0811