File pacemaker-attrd-broadcast-local-overrides-of-synced-attributes.patch of Package pacemaker.14737

commit c7eb3c49a8d356414f594643e7350cc13500321e
Author: Ken Gaillot <kgaillot@redhat.com>
Date:   Thu May 25 15:44:52 2017 -0500

    Low: attrd: broadcast local overrides of sync'ed attributes
    
    In the case of an attribute that was set on a stopped node, when the node
    rejoins, the peer writer will sync its attributes including that value. The
    node will reject it, overriding it with the local value (empty string).
    
    Previously, it would send that override only to the peer writer, meaning that
    any other nodes would still have the previous value in memory (and would
    respond to queries with it). Now, the node broadcasts any local overrides,
    so that all nodes get the correct value.

diff --git a/attrd/commands.c b/attrd/commands.c
index 98b4215b9..273cbd3b8 100644
--- a/attrd/commands.c
+++ b/attrd/commands.c
@@ -855,7 +855,9 @@ attrd_peer_update(crm_node_t *peer, xmlNode *xml, const char *host, bool filter)
                             v->nodename, v->nodeid, v->current);
 
         crm_xml_add_int(sync, F_ATTRD_WRITER, election_state(writer));
-        send_attrd_message(peer, sync);
+
+        /* Broadcast in case any other nodes had the inconsistent value */
+        send_attrd_message(NULL, sync);
         free_xml(sync);
 
     } else if(safe_str_neq(v->current, value)) {
openSUSE Build Service is sponsored by