In roaming sc, when the standby SC down, the new standby
is selected. But the amfd on the old standby is stuck.
And the new standby receives the amfd down event of old
standby.
In this case, FM should ignore events from old standby SC.
---
 src/fm/fmd/fm_mds.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/fm/fmd/fm_mds.cc b/src/fm/fmd/fm_mds.cc
index c5b3581ee..755856e2d 100644
--- a/src/fm/fmd/fm_mds.cc
+++ b/src/fm/fmd/fm_mds.cc
@@ -434,6 +434,14 @@ static uint32_t fm_mds_svc_evt(FM_CB *cb,
     return NCSCC_RC_FAILURE;
   }
 
+  if ((cb->role == PCS_RDA_STANDBY) && cb->peer_sc_up) {
+    if (svc_evt->i_node_id != cb->peer_node_id) {
+      LOG_NO("Ignore event of node %x. Peer node is %x",
+          (unsigned)svc_evt->i_node_id, (unsigned)cb->peer_node_id);
+      return NCSCC_RC_SUCCESS;
+    }
+  }
+
   switch (svc_evt->i_change) {
     case NCSMDS_DOWN:
       switch (svc_evt->i_svc_id) {
-- 
2.17.1



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to