ldap/servers/plugins/replication/repl5_replica.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
New commits:
commit 37a2a4d4d823d2dc4211ef57165ad5daf42c63a0
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Fri Sep 9 12:48:31 2011 -0600
Bug 736712 - Modifying ruv entry deadlocks server
https://bugzilla.redhat.com/show_bug.cgi?id=736712
Resolves: bug 736712
Bug Description: Modifying ruv entry deadlocks server
Reviewed by: nkinder (Thanks!)
Branch: master
Fix Description: Disallow modifying the RUV entry directly. Server returns
OPERATIONS_ERROR. Error log says to use CLEANRUV task instead.
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
diff --git a/ldap/servers/plugins/replication/repl5_replica.c
b/ldap/servers/plugins/replication/repl5_replica.c
index 92322ee..2a24f3e 100644
--- a/ldap/servers/plugins/replication/repl5_replica.c
+++ b/ldap/servers/plugins/replication/repl5_replica.c
@@ -2391,6 +2391,19 @@ replica_ruv_smods_for_op( Slapi_PBlock *pb, char **uniqueid,
Slapi_Mods **smods
Slapi_Mod smod;
Slapi_Mod smod_last_modified;
Slapi_Operation *op;
+ Slapi_Entry *target_entry = NULL;
+
+ slapi_pblock_get(pb, SLAPI_ENTRY_PRE_OP, &target_entry);
+ if (target_entry && is_ruv_tombstone_entry(target_entry)) {
+ char ebuf[BUFSIZ];
+ /* disallow direct modification of the RUV tombstone entry
+ must use the CLEANRUV task instead */
+ slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name,
+ "replica_ruv_smods_for_op: attempted to directly modify the
tombstone RUV "
+ "entry [%s] - use the CLEANRUV task instead\n",
+ escape_string(slapi_entry_get_dn_const(target_entry),ebuf));
+ return (-1);
+ }
replica_obj = replica_get_replica_for_op (pb);
slapi_pblock_get( pb, SLAPI_OPERATION, &op );