If we have a 'tied election' and split-brain prevention is enabled,
then the 'old active' is fenced, or the 'old active' will self-reboot
when it is notified a new node is active.
We need to disable this redundant check in fmd. Otherwise, the 'new
active'
will also reboot, along with the 'old active'.
---
src/fm/fmd/fm_main.cc | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/fm/fmd/fm_main.cc b/src/fm/fmd/fm_main.cc
index 1244c2347..73c9b9ccd 100644
--- a/src/fm/fmd/fm_main.cc
+++ b/src/fm/fmd/fm_main.cc
@@ -600,13 +600,18 @@ static void fm_mbx_msg_handler(FM_CB *fm_cb,
FM_EVT *fm_mbx_evt) {
* progress of shutdown (i.e., amfd/immd is still alive).
*/
if ((fm_cb->role == PCS_RDA_ACTIVE) && (fm_cb->csi_assigned
== false)) {
- LOG_WA(
- "Two active controllers observed in a cluster,
newActive: %x and "
- "old-Active: %x",
- unsigned(fm_cb->node_id), unsigned(fm_cb->peer_node_id));
- opensaf_reboot(0, NULL,
- "Received svc up from peer node (old-active
is not "
- "fully DOWN), hence rebooting the new Active");
+ Consensus consensus_service;
+ if (consensus_service.IsEnabled() == false) {
+ // If split-brain prevention is enabled, then the 'old
active' has
+ // already initiated a self-reboot, or it is fenced.
+ LOG_WA(
+ "Two active controllers observed in a cluster,
newActive: %x and "
+ "old-Active: %x",
+ unsigned(fm_cb->node_id), unsigned(fm_cb->peer_node_id));
+ opensaf_reboot(0, NULL,
+ "Received svc up from peer node (old-active
is not "
+ "fully DOWN), hence rebooting the new
Active");
+ }
}
/* Peer fm came up so sending ee_id of this node */