andykimpe / rpms / 389-ds-base

Forked from rpms/389-ds-base 4 months ago
Clone

Blame 0345-Ticket-48266-1.2.11-only-Fractional-replication-eval.patch

dc8c34
From d0a528cb40223f72e6d4f0ee64c4a86eb19a0bcc Mon Sep 17 00:00:00 2001
dc8c34
From: Noriko Hosoi <nhosoi@redhat.com>
dc8c34
Date: Mon, 5 Oct 2015 13:46:47 -0700
dc8c34
Subject: [PATCH] Ticket #48266 - (1.2.11 only) Fractional replication
dc8c34
 evaluates several times the same CSN
dc8c34
dc8c34
Description: Regression introdced by commit 1a58bf85389fc4373af2bf07e96eeb4618cee2b7.
dc8c34
The patch expected replica_object was set in prp_total, which was missing
dc8c34
in 1.2.11.  This patch sets it to prp_total in Repl_5_Tot_Protocol_new.
dc8c34
dc8c34
Note: replica_object in prp_total is set in the newer version (1.3.1 and
dc8c34
newer) by Ticket 47620.
dc8c34
dc8c34
Tested on rhel-6 following the reproducer:
dc8c34
on ipa master:
dc8c34
 ipa-server-install -p PW -a PW -r DOMAIN -n domainname --ip-address=IP -U
dc8c34
 ipa-replica-prepare -p PW REPLICA_FQDN
dc8c34
 scp /var/lib/ipa/replica-info-REPLICA_FQDN.gpg REPLICA:/var/lib/ipa
dc8c34
on ipa replica:
dc8c34
  ipa-replica-install /var/lib/ipa/replica-info-REPLICA_FQDN.gpg -p PW -w PW --ip-address=IP
dc8c34
Without the patch, the DS on master crashed.
dc8c34
dc8c34
https://fedorahosted.org/389/ticket/48266
dc8c34
dc8c34
Reviewed by tbordaz@redhat.com (Thank you, Thierry!!)
dc8c34
dc8c34
(cherry picked from commit 1e7e99d60227276dac6ca78ba519a4a237999b7a)
dc8c34
---
dc8c34
 ldap/servers/plugins/replication/repl5_tot_protocol.c | 1 +
dc8c34
 1 file changed, 1 insertion(+)
dc8c34
dc8c34
diff --git a/ldap/servers/plugins/replication/repl5_tot_protocol.c b/ldap/servers/plugins/replication/repl5_tot_protocol.c
dc8c34
index 0143e19..1bc987c 100644
dc8c34
--- a/ldap/servers/plugins/replication/repl5_tot_protocol.c
dc8c34
+++ b/ldap/servers/plugins/replication/repl5_tot_protocol.c
dc8c34
@@ -613,6 +613,7 @@ Repl_5_Tot_Protocol_new(Repl_Protocol *rp)
dc8c34
 	prp->repl50consumer = 0;
dc8c34
 	prp->repl71consumer = 0;
dc8c34
 	prp->repl90consumer = 0;
dc8c34
+	prp->replica_object = prot_get_replica_object(rp);
dc8c34
 	return prp;
dc8c34
 loser:
dc8c34
 	repl5_tot_delete(&prp;;
dc8c34
-- 
dc8c34
1.9.3
dc8c34