Version-Release number of selected component (if applicable): fedora-ds-base-1.1.0-1.2.fc7 Note: I'm not an LDAP expert. An empty LDAP modify operation (e.g. running ldapmodify, entering a DN and an empty line) fails. RFC 2251 p4.6 describes the list of modifications as a SEQUENCE OF, which seems to allow an empty sequence. Therefore, shouldn't the empty LDAP modify operation succeed?
Yes, but some caveats apply. http://www.mail-archive.com/ldap@umich.edu/msg00605.html
This falls under the category of RFC correctness. This is related to Bug 249327 - Should only update modifyTimestamp/modifiersName on MODIFY ops That is - should an empty mod op also update these attrs - sort of like how the *nix "touch" command can be used to update the timestamp of a file.
See also bug 450742
(In reply to comment #5) > See also bug 450742 no - bug 453756
Created attachment 454373 [details] Patch
Pushed to master. Thanks to Rich for his review! Counting objects: 15, done. Delta compression using 2 threads. Compressing objects: 100% (8/8), done. Writing objects: 100% (8/8), 793 bytes, done. Total 8 (delta 6), reused 0 (delta 0) To ssh://git.fedorahosted.org/git/389/ds.git f4c6760..6160200 master -> master
Hi Nathen, My understanding for this bug is : 1. Need to test : [root@rhel61-ds90-amita scripts]# ldapmodify -x -h localhost -p 389 -D "cn=Directory Manager" -w Secret123 << EOF > dn: > EOF modifying entry "" Should not give any error. 2. Then I should check for the attributes modifyTimestamp/modifiersName which can be updated using Modify Operation. I request you to please verify this information and please also add your comments. Like whether it should be tested for user or group and only for these two : modifyTimestamp/modifiersName or more ........ ?
(In reply to comment #10) > Hi Nathen, > > My understanding for this bug is : > 1. Need to test : > [root@rhel61-ds90-amita scripts]# ldapmodify -x -h localhost -p 389 -D > "cn=Directory Manager" -w Secret123 << EOF > > dn: > > EOF > modifying entry "" > Should not give any error. > > 2. Then I should check for the attributes modifyTimestamp/modifiersName which > can be updated using Modify Operation. > > I request you to please verify this information and please also add your > comments. Like whether it should be tested for user or group and only for these > two : modifyTimestamp/modifiersName or more ........ ? You really should be testing this against actual entries instead of the root DSE (the "" DN). The type of entry doesn't matter, so just perform an empty modify operation against a test user entry. Just check if modifyTimestamp and modifiersName are updated.
Steps for verification ======================= 1) ldapmodify -x -h localhost -p 389 -D "cn=Directory Manager" -w Secret123 << EOF dn: uid=amita,dc=example44,dc=com changetype: add objectClass: top objectClass: person objectClass: inetorgperson sn: amita cn: amita userPassword: redhat EOF 2) ldapsearch -x -h localhost -p 1389 -D "cn=Directory Manager" -w Secret123 -b "dc=example44,dc=com" -s sub "(objectclass=*)" creatorsName createTimestamp modifiersName modifyTimestamp # amita, example44.com dn: uid=amita,dc=example44,dc=com creatorsName: cn=directory manager createTimestamp: 20110412062039Z modifiersName: cn=directory manager modifyTimestamp: 20110412062039Z 3) ldapmodify -x -h localhost -p 1389 -D "uid=amita,dc=example44,dc=com" -w redhat << EOF dn: uid=amita,dc=example44,dc=com EOF modifying entry "uid=amita,dc=example44,dc=com" 4) ldapsearch -x -h localhost -p 1389 -D "cn=Directory Manager" -w Secret123 -b "dc=example44,dc=com" -s sub "(objectclass=*)" creatorsName createTimestamp modifiersName modifyTimestamp # amita, example44.com dn: uid=amita,dc=example44,dc=com creatorsName: cn=directory manager createTimestamp: 20110412062039Z modifiersName: uid=amita,dc=example44,dc=com modifyTimestamp: 20110412064017Z 5) ldapmodify -x -h localhost -p 1389 -D "cn=Directory Manager" -w Secret123 << EOF dn: uid=amita,dc=example44,dc=com EOF 6) ldapsearch -x -h localhost -p 1389 -D "cn=Directory Manager" -w Secret123 -b "dc=example44,dc=com" -s sub "(objectclass=*)" creatorsName createTimestamp modifiersName modifyTimestamp # amita, example44.com dn: uid=amita,dc=example44,dc=com creatorsName: cn=directory manager createTimestamp: 20110412062039Z modifiersName: cn=directory manager modifyTimestamp: 20110412064240Z Tested - OK, Marking as VERIFIED.