andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
Blob Blame History Raw
From 9186307df2d5c93aeadf54908fbd520f1f309467 Mon Sep 17 00:00:00 2001
From: Noriko Hosoi <nhosoi@redhat.com>
Date: Tue, 1 Jul 2014 14:07:01 -0700
Subject: [PATCH 234/234] Ticket #47750 - Creating a glue fails if one above
 level is a conflict or missing

Description: This commit accidentally removed the code to add entry
back to cache if it was replaced:
  Commit: 160cb3f686e433c01532d28770b2977ec957e73e
  Ticket #47750 - Creating a glue fails if one above level is a conflict or missing;
Thanks to lkrispen@redhat.com for figuring it out.

Note: This is the cause of Ticket #47830 - usn tombstone entry not properly created
(cherry picked from commit 98cf4246b6e5c8a99a1e9063eca9aad9560185bd)
(cherry picked from commit 8c496b1e3b9d8a23369573423cb0b22bc6ed0e2d)
(cherry picked from commit 51a76a4d565f0e93092e589ee7e3064d5371c54a)
(cherry picked from commit 5b76c176de2ac09f17cf97e74800a38307b789f7)
---
 ldap/servers/slapd/back-ldbm/ldbm_delete.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
index 1d2cbc3..ece8f0f 100644
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
@@ -548,6 +548,11 @@ ldbm_back_delete( Slapi_PBlock *pb )
 					goto error_return;
 				}
 			}
+			/* reset original entry in cache */ 
+			if (!e_in_cache) { 
+				CACHE_ADD(&inst->inst_cache, e, NULL); 
+				e_in_cache = 1; 
+			} 
 			if (ruv_c_init) {
 				/* reset the ruv txn stuff */
 				modify_term(&ruv_c, be);
@@ -675,6 +680,8 @@ ldbm_back_delete( Slapi_PBlock *pb )
 					retval= -1;
 					DEL_SET_ERROR(ldap_result_code, LDAP_OPERATIONS_ERROR, retry_count);
 					goto error_return;
+				} else {
+					e_in_cache = 0;
 				}
 			} else {
 				struct backentry *imposter = NULL;
-- 
1.8.1.4