zrhoffman / rpms / 389-ds-base

Forked from rpms/389-ds-base 3 years ago
Clone

Blame SOURCES/0007-Ticket-47889-DS-crashed-during-ipa-server-install-on.patch

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