Red Hat Bugzilla – Bug 1097004
Problem with deletion while replicated
Last modified: 2015-03-05 04:34:35 EST
+++ This bug was initially created as a clone of Bug #1097002 +++ This bug is created as a clone of upstream ticket: https://fedorahosted.org/389/ticket/47764 Bug description: When checking a child entry on a node, it only checked the first position, which was normally "deleted" if there were no more children. But in some cases, a tombstoned child was placed there. If it occurred, even though there were no live child any more, _entryrdn_delete_key returned "has children" and the delete operation failed. --- Additional comment from Noriko Hosoi on 2014-05-12 20:26:48 EDT --- Steps to verify: Set up 2way MMR with the suffix o=a. Import the attached sample.ldif to a master and initialize the other master. ldapdelete -h <host> -p <master1_port> ... << EOF ou=child,o=x,o=a EOF <-- this is successful ldapdelete -h <host> -p <master1_port> ... << EOF o=x,o=a EOF This used to fail and these error messages were logged in the error log. [..] entryrdn-index - _entryrdn_delete_key: Failed to remove o=x; has children [..] - database index operation failed BAD 1031, err=-1 Unknown error: -1 If "o=x,o=a" is successfully deleted without any errors, the bug is verified.
See https://bugzilla.redhat.com/show_bug.cgi?id=1097002#c1 for verification steps
[root@dhcp201-126 /]# ldapadd -x -h localhost -p 30100 -D "cn=Directory Manager" -w Secret123 << EOF > dn: o=x,dc=example,dc=com > objectClass: top > objectClass: organization > o: x > EOF adding new entry "o=x,dc=example,dc=com" [root@dhcp201-126 /]# ldapadd -x -h localhost -p 30100 -D "cn=Directory Manager" -w Secret123 << EOF > dn: ou=child,o=x,dc=example,dc=com > ou: child > objectClass: top > objectClass: organizationalunit > EOF adding new entry "ou=child,o=x,dc=example,dc=com" [root@dhcp201-126 /]# ldapdelete -v -h localhost -p 30100 -D "cn=Directory Manager" -w Secret123 ou=child,o=x,dc=example,dc=com ldap_initialize( ldap://localhost:30100 ) deleting entry "ou=child,o=x,dc=example,dc=com" [root@dhcp201-126 /]# ldapdelete -v -H ldap://localhost:30100 -D "cn=Directory Manager" -w Secret123 o=x,dc=example,dc=com ldap_initialize( ldap://localhost:30100/??base ) deleting entry "o=x,dc=example,dc=com" [root@dhcp201-126 /]# rpm -qa | grep 389 389-ds-base-libs-1.3.3.1-9.el7.x86_64 389-ds-base-1.3.3.1-9.el7.x86_64 Hence VERIFIED
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/RHSA-2015-0416.html