From 45b73d9f5acdfb6a1cf040964b2737f0219a98ba Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Fri, 15 Jun 2012 18:15:45 -0600 Subject: [PATCH 5/5] Ticket #360 - ldapmodify returns Operations error - fix delete caching https://fedorahosted.org/389/ticket/360 Resolves: Ticket #360 Bug Description: ldapmodify returns Operations error - fix delete caching Reviewed by: ??? Branch: master Fix Description: Previous commit was wrong. When retrying the op, have to remove the tombstone, if any, from the cache first, then add back the original entry. Platforms tested: RHEL6 x86_64, Fedora 17 Flag Day: no Doc impact: no (cherry picked from commit ff30056700a150fec3e183e56bd23f89e4b43982) --- ldap/servers/slapd/back-ldbm/ldbm_delete.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c index 283dc64..6e6a5de 100644 --- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c +++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c @@ -470,12 +470,6 @@ ldbm_back_delete( Slapi_PBlock *pb ) slapi_sdn_set_ndn_byval(&nscpEntrySDN, slapi_sdn_get_ndn(slapi_entry_get_sdn(e->ep_entry))); } - /* reset original entry in cache */ - if (!e_in_cache) { - CACHE_ADD(&inst->inst_cache, e, NULL); - e_in_cache = 1; - } - /* reset tombstone entry */ if (original_tombstone) { if (tombstone_in_cache) { @@ -492,6 +486,12 @@ ldbm_back_delete( Slapi_PBlock *pb ) } } + /* reset original entry in cache */ + if (!e_in_cache) { + CACHE_ADD(&inst->inst_cache, e, NULL); + e_in_cache = 1; + } + /* We're re-trying */ LDAPDebug0Args(LDAP_DEBUG_BACKLDBM, "Delete Retrying Transaction\n"); -- 1.7.1