https://fedorahosted.org/389/ticket/47367 https://fedorahosted.org/389/attachment/ticket/47367/0001-Ticket-47367-phase-1-ldapdelete-returns-non-leaf-ent.patch Bug description: Replication conflict confuses the numsubordinate count, which leaves an entry that cannot be deleted even its subordinate entries are all removed. Fix description: [urp.c] get_dn_plus_uniqueid: a logic to create a conflict DN had a bug. It used to call slapi_sdn_get_rdn to get the rdn. The function slapi_sdn_get_rdn blindly returned the "dn" field without checking whether the field is NULL or not. Instead, this patch changes the interface of the helper function get_ dn_plus_uniqueid and use the original Slapi_DN with slapi_ sdn_get_dn, then generates the conflict DN "nsuniqueid=...+ <RDN>,<PARENT>". [ldbm_delete.c] This patch removes 2 PR_ASSERT calls for is_tombstone_entry, which allows us to test deleting an tombstone entry without aborting the server built with debug flag. [ldbm_entryrdn.c] When traversing the DIT, a special treatment is needed for a tombstone entry. I.e, 2 RDNs (nsuniqueid=..., <RDN>) is treated as one RDN. It should decrement the index (rdnidx) one more to point to the right position of the RDN array in Slapi_RDN. [ldbm_search.c] When checking the scope of an entry in ldbm_ back_next_search_entry_ext, a tombstone entry was not properly examined. This patch introduces a new slapi api slapi_sdn_ scope_test_ext. [dn.c] In slapi_sdn_get_rdn, use slapi_sdn_get_dn to get the dn value of Slapi_DN. It was one cause of the problem in get_dn_plus_uniqueid (urp.c). This patch adds slapi_sdn_scope_test_ext, which takes flags to indicates the first argument dn is a tombstone sdn. Also, this patch replaces "malloc + strcpy + strcat" with slapi_ch_smprintf to improve the readability of the code. [rdn.c] This patch replaces "malloc + strcpy + strcat" with slapi_ch_smprintf to improve the readability of the code. Note: this patch is for 389-ds-base-1.2.11. To apply this patch to master, it requires a few conflict fixes. -- 389-devel mailing list 389-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/389-devel