In roaming SC cluster, when both active/standby SC go down,
if SC Absence feature is enables, the cluster will nominate
another SC to become active. Amfnd in this nominated SC has
the led_state is true, therefore, amfd in this nominated SC
will proceed the restoration regardless the sync window.

This problem only happens in roaming SC with SC absence, it
does not happen in classical cluster with 2SC-xPLs.

This patch tightens the sync window condition to proceed
the restoration.
---
 src/amf/amfd/ndfsm.cc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/amf/amfd/ndfsm.cc b/src/amf/amfd/ndfsm.cc
index 05c103e12..d6cf6bc57 100644
--- a/src/amf/amfd/ndfsm.cc
+++ b/src/amf/amfd/ndfsm.cc
@@ -351,11 +351,9 @@ void avd_node_up_evh(AVD_CL_CB *cb, AVD_EVT *evt) {
         goto done;
       }
       if (cb->node_sync_tmr.is_active == true) {
-        if (n2d_msg->msg_info.n2d_node_up.leds_set == false) {
           TRACE("NodeSync timer is active, ignore this node_up msg 
(nodeid:%x)",
                 n2d_msg->msg_info.n2d_node_up.node_id);
           goto done;
-        }
       }
     }
   }
@@ -378,6 +376,10 @@ void avd_node_up_evh(AVD_CL_CB *cb, AVD_EVT *evt) {
       (cb->init_state < AVD_INIT_DONE)) {
     // node up from local AVND
     avd_process_state_info_queue(cb);
+    // close nodesync window
+    TRACE("stop NodeSync timer");
+    avd_stop_tmr(cb, &cb->node_sync_tmr);
+    cb->node_sync_window_closed = true;
   }
 
   if (avnd->node_info.member != SA_TRUE) {
-- 
2.20.1



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

Reply via email to