File pacemaker-crmd-transition-whenever-lose-quorum.patch of Package pacemaker.14737
commit 0b6890554a1928ec96cc22f71497d7874e72aa4f
Author: Ken Gaillot <kgaillot@redhat.com>
Date: Tue Jun 27 12:27:32 2017 -0500
Fix: crmd: abort transition whenever we lose quorum
If a node drops us below quorum because it was unexpectedly lost, the peer
update callback will abort the transition. If it was shut down cleanly while
running resources, the CIB recovery results will abort the transition. However,
if it was shut down cleanly while not running any resources (e.g. in standby
mode), previously we would not trigger a new transition, and the remaining
nodes would not stop their resources until the next recheck interval.
Index: pacemaker-1.1.16+20170320.77ea74d/crmd/membership.c
===================================================================
--- pacemaker-1.1.16+20170320.77ea74d.orig/crmd/membership.c
+++ pacemaker-1.1.16+20170320.77ea74d/crmd/membership.c
@@ -437,6 +437,14 @@ crm_update_quorum(gboolean quorum, gbool
crm_notice("Updating quorum status to %s (call=%d)", quorum ? "true" : "false", call_id);
fsa_register_cib_callback(call_id, FALSE, NULL, cib_quorum_update_complete);
free_xml(update);
+
+ /* If a node not running any resources is cleanly shut down and drops us
+ * below quorum, we won't necessarily abort the transition, so abort it
+ * here to be safe.
+ */
+ if (quorum == FALSE) {
+ abort_transition(INFINITY, tg_restart, "Quorum loss", NULL);
+ }
}
fsa_has_quorum = quorum;
}