andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
dc8c34
From 7f98461398082faf293351f3e8110781acc4f34d Mon Sep 17 00:00:00 2001
dc8c34
From: "Thierry bordaz (tbordaz)" <tbordaz@redhat.com>
dc8c34
Date: Thu, 11 Sep 2014 09:47:29 +0200
dc8c34
Subject: [PATCH] Ticket 47889 - DS crashed during ipa-server-install on
dc8c34
 test_ava_filter
dc8c34
dc8c34
Bug Description:
dc8c34
	During a MOD the target entry is duplicated and mods are applied
dc8c34
	on the duplicated entry that is set in the pblock (SLAPI_MODIFY_EXISTING_ENTRY).
dc8c34
	In case of transient DB error, ldbm_back_modify retries.
dc8c34
	But when retrying the duplicated entry will be freed and needs to be duplicated again.
dc8c34
	The new duplicated entry needs to be set in the pblock.
dc8c34
	https://fedorahosted.org/389/ticket/47834 erronously skip the setting of SLAPI_MODIFY_EXISTING_ENTRY
dc8c34
dc8c34
Fix Description:
dc8c34
	Set SLAPI_MODIFY_EXISTING_ENTRY during mod/retry
dc8c34
dc8c34
https://fedorahosted.org/389/ticket/47889
dc8c34
dc8c34
Reviewed by: ?
dc8c34
dc8c34
Platforms tested: F20
dc8c34
dc8c34
Flag Day: no
dc8c34
dc8c34
Doc impact: no
dc8c34
dc8c34
(cherry picked from commit 3b5f3fa1b82cde2bda1104cf758acb64f6484009)
dc8c34
(cherry picked from commit 9d4e6fce0d169762fc231f9e942af3f2e44e3d56)
dc8c34
---
dc8c34
 ldap/servers/slapd/back-ldbm/ldbm_modify.c | 1 +
dc8c34
 1 file changed, 1 insertion(+)
dc8c34
dc8c34
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_modify.c b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
dc8c34
index 4c1f33f..8b36e0f 100644
dc8c34
--- a/ldap/servers/slapd/back-ldbm/ldbm_modify.c
dc8c34
+++ b/ldap/servers/slapd/back-ldbm/ldbm_modify.c
dc8c34
@@ -561,6 +561,7 @@ ldbm_back_modify( Slapi_PBlock *pb )
dc8c34
 					CACHE_REMOVE(&inst->inst_cache, ec);
dc8c34
 				}
dc8c34
 				CACHE_RETURN(&inst->inst_cache, &ec);
dc8c34
+				slapi_pblock_set( pb, SLAPI_MODIFY_EXISTING_ENTRY, original_entry->ep_entry );
dc8c34
 				ec = original_entry;
dc8c34
 				original_entry = tmpentry;
dc8c34
 				tmpentry = NULL;
dc8c34
-- 
dc8c34
1.9.3
dc8c34