andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
Blob Blame History Raw
From 7f98461398082faf293351f3e8110781acc4f34d Mon Sep 17 00:00:00 2001
From: "Thierry bordaz (tbordaz)" <tbordaz@redhat.com>
Date: Thu, 11 Sep 2014 09:47:29 +0200
Subject: [PATCH] Ticket 47889 - DS crashed during ipa-server-install on
 test_ava_filter

Bug Description:
	During a MOD the target entry is duplicated and mods are applied
	on the duplicated entry that is set in the pblock (SLAPI_MODIFY_EXISTING_ENTRY).
	In case of transient DB error, ldbm_back_modify retries.
	But when retrying the duplicated entry will be freed and needs to be duplicated again.
	The new duplicated entry needs to be set in the pblock.
	https://fedorahosted.org/389/ticket/47834 erronously skip the setting of SLAPI_MODIFY_EXISTING_ENTRY

Fix Description:
	Set SLAPI_MODIFY_EXISTING_ENTRY during mod/retry

https://fedorahosted.org/389/ticket/47889

Reviewed by: ?

Platforms tested: F20

Flag Day: no

Doc impact: no

(cherry picked from commit 3b5f3fa1b82cde2bda1104cf758acb64f6484009)
(cherry picked from commit 9d4e6fce0d169762fc231f9e942af3f2e44e3d56)
---
 ldap/servers/slapd/back-ldbm/ldbm_modify.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modify.c b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
index 4c1f33f..8b36e0f 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_modify.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
@@ -561,6 +561,7 @@ ldbm_back_modify( Slapi_PBlock *pb )
 					CACHE_REMOVE(&inst->inst_cache, ec);
 				}
 				CACHE_RETURN(&inst->inst_cache, &ec);
+				slapi_pblock_set( pb, SLAPI_MODIFY_EXISTING_ENTRY, original_entry->ep_entry );
 				ec = original_entry;
 				original_entry = tmpentry;
 				tmpentry = NULL;
-- 
1.9.3