Bug 1647017

Summary: A distinguished value of a single valued attribute can be missing in an entry
Product: Red Hat Enterprise Linux 8 Reporter: German Parente <gparente>
Component: 389-ds-baseAssignee: mreynolds
Status: CLOSED ERRATA QA Contact: RHDS QE <ds-qe-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.1CC: mreynolds, nkinder, pasik, sgouvern, spichugi, tbordaz, tmihinto, vashirov
Target Milestone: rcKeywords: TestCaseProvided
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.4.3.8-4.module+el8.3.0+7193+dfd1e8ad Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-11-04 03:07:13 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:

Description German Parente 2018-11-06 14:12:50 UTC
Description of problem:

This is the RHEL7 bug corresponding to upstream:

#49859 A distinguished value of a single valued attribute can be missing in an entry


In MMR with a specific set of operations it is possible to create an entry like

dn: employeeNumber=3.2,ou=distinguished,ou=People,dc=example,dc=com
employeeNumber: 3.1
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: 3
sn: 3
cn: 3

The test case is composed of 3 Masters but it is equivalent with 2 Masters.
Topology is fully meshed but RA from M1 and M2 are disabled.

1 - On M1 MODRDN (E, rdn=employeeNumber=3.1)
2 - On M2 MODRDN (E, rdn=employeeNumber=3.2)
3 - On M1 MOD(E, [MOD_REPL, 'employeeNumber', '3.1'])

The entry is similar on all servers. The csn of (3) being the higher than (2), the MOD will remove the value '3.2' without taking into consideration that it is distinguished

Version-Release number of selected component (if applicable): RHEL7.6



Steps to Reproduce: follow test case in DS #49859 
1.
2.
3.

Actual results:

the value of the the RDN attribute is not present in the entry

Comment 7 sgouvern 2020-07-16 17:17:45 UTC
With build 389-ds-base-1.4.3.8-4.module+el8.3.0+7193+dfd1e8ad.x86_64

# py.test -v dirsrvtests/tests/suites/replication/conflict_resolve_test.py::TestTwoMasters::test_conflict_attribute_multi_valued
re-exec with libfaketime dependencies
========================================================================= test session starts =========================================================================
platform linux -- Python 3.6.8, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3.6
cachedir: .pytest_cache
metadata: {'Python': '3.6.8', 'Platform': 'Linux-4.18.0-221.el8.x86_64-x86_64-with-redhat-8.3-Ootpa', 'Packages': {'pytest': '5.4.3', 'py': '1.9.0', 'pluggy': '0.13.1'}, 'Plugins': {'metadata': '1.10.0', 'html': '2.1.1', 'libfaketime': '0.1.2'}}
389-ds-base: 1.4.3.8-4.module+el8.3.0+7193+dfd1e8ad
nss: 3.44.0-15.el8
nspr: 4.21.0-2.el8_0
openldap: 2.4.46-15.el8
cyrus-sasl: 2.1.27-5.el8
FIPS: disabled
rootdir: /mnt/tests/rhds/tests/upstream/ds/dirsrvtests, inifile: pytest.ini
plugins: metadata-1.10.0, html-2.1.1, libfaketime-0.1.2
collected 1 item                                                                                                                                                      

dirsrvtests/tests/suites/replication/conflict_resolve_test.py::TestTwoMasters::test_conflict_attribute_multi_valued PASSED                                      [100%]


# py.test -v dirsrvtests/tests/suites/replication/conflict_resolve_test.py::TestTwoMasters::test_conflict_attribute_single_valued
re-exec with libfaketime dependencies
========================================================================= test session starts =========================================================================
platform linux -- Python 3.6.8, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3.6
cachedir: .pytest_cache
metadata: {'Python': '3.6.8', 'Platform': 'Linux-4.18.0-221.el8.x86_64-x86_64-with-redhat-8.3-Ootpa', 'Packages': {'pytest': '5.4.3', 'py': '1.9.0', 'pluggy': '0.13.1'}, 'Plugins': {'metadata': '1.10.0', 'html': '2.1.1', 'libfaketime': '0.1.2'}}
389-ds-base: 1.4.3.8-4.module+el8.3.0+7193+dfd1e8ad
nss: 3.44.0-15.el8
nspr: 4.21.0-2.el8_0
openldap: 2.4.46-15.el8
cyrus-sasl: 2.1.27-5.el8
FIPS: disabled
rootdir: /mnt/tests/rhds/tests/upstream/ds/dirsrvtests, inifile: pytest.ini
plugins: metadata-1.10.0, html-2.1.1, libfaketime-0.1.2
collected 1 item                                                                                                                                                      

dirsrvtests/tests/suites/replication/conflict_resolve_test.py::TestTwoMasters::test_conflict_attribute_single_valued PASSED                                     [100%]

=> marking as verified

Comment 10 errata-xmlrpc 2020-11-04 03:07:13 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 (389-ds:1.4 bug fix and enhancement update), 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/RHEA-2020:4695