#570 DS returns error 20 when replacing values of a multi-valued attribute (only when replication is enabled)
Closed: wontfix None Opened 11 years ago by mreynolds.

Description of problem:

RHDS fails when replacing multi-valued attributes. The problem only occurs when replication is enabled (the server executing the modification is configured as a single master and there is at least one replication agreement).

The modification requests are refused by the master server, which returns code 20 (error message is 'Type or value exists'). These requests are replacements of multi-valued attributes. The error only occurs when one of the new values matches one of the current values of the attribute, but has a different letter case. For exemple, you have a cn attribute which contains 'ROBERT', and you want to replace it by 'Robert' and 'Bob', but the server gives an error 20.

Version-Release number of selected component (if applicable): RHDS 8.2 / 9

How reproducible: Always

Steps to Reproduce:
1. Enable replication.
2. Create an multi-valued attribute with one or more values
3. Try to replace the attribute with a different set of values (including one value that's similar to an existing value)

Actual results: Directory server returns err=20

Expected results: ldapmodification success, no errors.

Additional info:

Commands / logs:

uid=iuser4, exist on Directory server and it's cn is set to 'foo'

dn: uid=iuser4,ou=People,dc=gsslab,dc=pnq,dc=redhat,dc=com"
cn: foo

Try to re-place the cn (foo) with new values "cn: FOO" and "cn: Idm User".

// ============ Replication Enabled ============:

$ ldapmodify -D cn=Directory\ manager -w go4linux -h 10.65.209.198
dn: uid=iuser4,ou=People,dc=gsslab,dc=pnq,dc=redhat,dc=com
changetype: modify
replace:cn
cn: FOO
cn: Idm User
modifying entry "uid=iuser4,ou=People,dc=gsslab,dc=pnq,dc=redhat,dc=com"
ldap_modify: Type or value exists (20)

//logs
conn=12 fd=68 slot=68 connection from 10.65.222.102 to 10.65.209.198
conn=12 op=0 BIND dn="cn=Directory manager" method=128 version=3
conn=12 op=0 RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=directory manager"
conn=12 op=1 MOD dn="uid=iuser4,ou=People,dc=gsslab,dc=pnq,dc=redhat,dc=com"
conn=12 op=1 RESULT err=20 tag=103 nentries=0 etime=0 csn=50d98df700000ca00000
conn=12 op=2 UNBIND
conn=12 op=2 fd=68 closed - U1

// ============No replication ============:

$ ldapmodify -D cn=Directory\ manager -w go4linux -h 10.65.209.198
changetype: modify
replace:cn
cn: FOO
cn: Idm User
modifying entry "uid=iuser4,ou=People,dc=gsslab,dc=pnq,dc=redhat,dc=com"

//logs
conn=16 op=0 RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=directory manager"
conn=16 op=1 MOD dn="uid=iuser4,ou=People,dc=gsslab,dc=pnq,dc=redhat,dc=com"


Pushed to 389-ds-base-1.2.11: commit 5c01932

Metadata Update from @mreynolds:
- Issue assigned to mreynolds
- Issue set to the milestone: 1.2.11.19

7 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/570

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.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: Fixed)

3 years ago

Login to comment on this ticket.

Metadata