From 4c154182cd680f458b016abf60760328d0979b63 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Wed, 13 Jul 2016 15:51:56 -0400 Subject: [PATCH 08/15] Ticket 48924 - Fixup tombstone task needs to set proper flag when updating tombstones Bug Description: The fixup tombstone task is not updating tombstones due to TOMBSTONE_INCLUDE not being set when looking up the entry to modify. Fix Description: If fixing up tombstones called find_entry2modify_only_ext with the TOMBSTONE_INCLUDED flag. https://fedorahosted.org/389/ticket/48924 Reviewed by: nhosoi(Thanks!) (cherry picked from commit 8cfb650170bbb4f6ce328b827dc294437ee38c4b) --- ldap/servers/slapd/back-ldbm/ldbm_modify.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modify.c b/ldap/servers/slapd/back-ldbm/ldbm_modify.c index 37225cd..9b3062c 100644 --- a/ldap/servers/slapd/back-ldbm/ldbm_modify.c +++ b/ldap/servers/slapd/back-ldbm/ldbm_modify.c @@ -465,9 +465,14 @@ ldbm_back_modify( Slapi_PBlock *pb ) */ if ( MANAGE_ENTRY_BEFORE_DBLOCK(li)) { /* find and lock the entry we are about to modify */ - if ( (e = find_entry2modify( pb, be, addr, &txn )) == NULL ) { + if (fixup_tombstone) { + e = find_entry2modify_only_ext( pb, be, addr, TOMBSTONE_INCLUDED, &txn ); + } else { + e = find_entry2modify( pb, be, addr, &txn ); + } + if (e == NULL) { ldap_result_code= -1; - goto error_return; /* error result sent by find_entry2modify() */ + goto error_return; /* error result sent by find_entry2modify() */ } } @@ -545,9 +550,14 @@ ldbm_back_modify( Slapi_PBlock *pb ) if (0 == retry_count) { /* just once */ if ( !MANAGE_ENTRY_BEFORE_DBLOCK(li)) { /* find and lock the entry we are about to modify */ - if ( (e = find_entry2modify( pb, be, addr, &txn )) == NULL ) { + if (fixup_tombstone) { + e = find_entry2modify_only_ext( pb, be, addr, TOMBSTONE_INCLUDED, &txn ); + } else { + e = find_entry2modify( pb, be, addr, &txn ); + } + if (e == NULL) { ldap_result_code= -1; - goto error_return; /* error result sent by find_entry2modify() */ + goto error_return; /* error result sent by find_entry2modify() */ } } -- 2.4.11