osaf/services/saf/avsv/avd/avd_role.cc |  9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)


MDS can force an active vdest into quiesced state (see docs). Reasons for this
happening is unclear. The logic avd_mds_qsd_role_evh() can only handle this
event in context of a controller switch-over. Otherwise it could e.g. hang in
using IMM which eventually times out and calls abort() generating a core dump.

Instead exit the amfd process when this event happens in non controller
switch-over state. amfnd will failfast reboot the node when it detects this.

diff --git a/osaf/services/saf/avsv/avd/avd_role.cc 
b/osaf/services/saf/avsv/avd/avd_role.cc
--- a/osaf/services/saf/avsv/avd/avd_role.cc
+++ b/osaf/services/saf/avsv/avd/avd_role.cc
@@ -569,6 +569,15 @@ void avd_mds_qsd_role_evh(AVD_CL_CB *cb,
 
        TRACE_ENTER();
 
+       /* Only accept this event in controller switch-over state, in other
+        * states it is invalid and indicates severe cluster problems.
+        */
+       if (cb->swap_switch == SA_FALSE) {
+               LOG_NO("%s: MDS unexpectedly changed role to QUIESCED", 
__FUNCTION__);
+               LOG_CR("Controller split brain detected, exiting");
+               _exit(EXIT_FAILURE); // should never get here...
+       }
+
        /* Give up IMM OI implementer role */
        if ((rc = immutil_saImmOiImplementerClear(cb->immOiHandle)) != 
SA_AIS_OK) {
                LOG_ER("FAILOVER Active --> Quiesced FAILED, ImplementerClear 
failed %u", rc);

------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to