andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 5 months ago
Clone
dc8c34
From 179c018e99350c7ee051a281a3466ef46004a255 Mon Sep 17 00:00:00 2001
dc8c34
From: Noriko Hosoi <nhosoi@redhat.com>
dc8c34
Date: Fri, 26 Oct 2012 10:02:38 -0700
dc8c34
Subject: [PATCH 08/10] Trac Ticket #494 - slapd entered to infinite loop during new index addition
dc8c34
dc8c34
https://fedorahosted.org/389/ticket/494
dc8c34
dc8c34
Bug Description: An entry which rdn is nsuniqueid=...,nsuniqueid=...
dc8c34
was accidentally generated.  It broke the entryrdn tree and put
dc8c34
the reindex and export into the the infinite loop.
dc8c34
dc8c34
Fix Description: Added an missing check if the retrieved entry is
dc8c34
already an tombstone or not.  This tombstone is the one converted
dc8c34
by the entryusn plugin.  Please note that replication has an urp
dc8c34
code which handles such conflicts.
dc8c34
(cherry-picked from commit b963576d2758d29e8d21297e8f763d0373895b9f)
dc8c34
(cherry picked from commit 31d15788d4e988646a42252f6ea351f033206a96)
dc8c34
---
dc8c34
 ldap/servers/slapd/back-ldbm/ldbm_delete.c |    7 +++++++
dc8c34
 1 files changed, 7 insertions(+), 0 deletions(-)
dc8c34
dc8c34
diff --git a/ldap/servers/slapd/back-ldbm/ldbm_delete.c b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
dc8c34
index 73c3658..528693e 100644
dc8c34
--- a/ldap/servers/slapd/back-ldbm/ldbm_delete.c
dc8c34
+++ b/ldap/servers/slapd/back-ldbm/ldbm_delete.c
dc8c34
@@ -290,6 +290,13 @@ ldbm_back_delete( Slapi_PBlock *pb )
dc8c34
 			create_tombstone_entry = (create_tombstone_entry < 0) ? 0 : 1;
dc8c34
 		}
dc8c34
 	}
dc8c34
+	if (create_tombstone_entry && is_tombstone_entry) {
dc8c34
+		slapi_log_error(SLAPI_LOG_FATAL, "ldbm_back_delete",
dc8c34
+			"Attempt to convert a tombstone entry %s to tombstone\n", dn);
dc8c34
+		retval = -1;
dc8c34
+		ldap_result_code = LDAP_UNWILLING_TO_PERFORM;
dc8c34
+		goto error_return;
dc8c34
+	}
dc8c34
 
dc8c34
 #if DEBUG
dc8c34
 	slapi_log_error(SLAPI_LOG_REPL, "ldbm_back_delete",
dc8c34
-- 
dc8c34
1.7.1
dc8c34