osaf/services/saf/amf/amfd/main.cc      |  2 +-
 osaf/services/saf/amf/amfd/sg_2n_fsm.cc |  3 ++-
 osaf/services/saf/amf/amfd/sgproc.cc    |  8 +-------
 3 files changed, 4 insertions(+), 9 deletions(-)


If standby amfd is not available then stby_sync_state
should be in out of sync state.
Else, Amfd should be in out of sync state.
This is to avoid issues like 1841

diff --git a/osaf/services/saf/amf/amfd/main.cc 
b/osaf/services/saf/amf/amfd/main.cc
--- a/osaf/services/saf/amf/amfd/main.cc
+++ b/osaf/services/saf/amf/amfd/main.cc
@@ -542,7 +542,7 @@ static uint32_t initialize(void)
        cb->fully_initialized = false;
        cb->swap_switch = false;
        cb->active_services_exist = true;
-       cb->stby_sync_state = AVD_STBY_IN_SYNC;
+       cb->stby_sync_state = AVD_STBY_OUT_OF_SYNC;
        cb->sync_required = true;
        
        cb->heartbeat_tmr.is_active = false;
diff --git a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc
@@ -771,7 +771,8 @@ SaAisErrorT SG_2N::si_swap(AVD_SI *si, S
                goto done;
        }
 
-       if (si->sg_of_si->sg_ncs_spec) {
+       if ((si->sg_of_si->sg_ncs_spec) && 
+                       ((cb->node_id_avd_other != 0) && (cb->other_avd_adest 
!= 0))) {
                if (avd_cb->stby_sync_state == AVD_STBY_OUT_OF_SYNC) {
                        LOG_ER("%s SWAP failed - Cold sync in progress", 
si->name.value);
                        rc = SA_AIS_ERR_TRY_AGAIN;
diff --git a/osaf/services/saf/amf/amfd/sgproc.cc 
b/osaf/services/saf/amf/amfd/sgproc.cc
--- a/osaf/services/saf/amf/amfd/sgproc.cc
+++ b/osaf/services/saf/amf/amfd/sgproc.cc
@@ -1997,14 +1997,8 @@ void avd_node_down_mw_susi_failover(AVD_
                if ((i_su->sg_of_su->sg_redundancy_model == 
SA_AMF_2N_REDUNDANCY_MODEL) &&
                                (i_su->sg_of_su->sg_fsm_state == 
AVD_SG_FSM_STABLE))
                        (void) avd_clm_track_start();
-               /* If Std ctlr went down in middle of Cold sync, then we need
-                  to reset the sync state to IN_SYNC. */
-               if ((i_su->sg_of_su->sg_redundancy_model == 
SA_AMF_2N_REDUNDANCY_MODEL) &&
-                               (cb->stby_sync_state == AVD_STBY_OUT_OF_SYNC)) {
-                       TRACE("Marking sync_state as in_sync");
-                       cb->stby_sync_state = AVD_STBY_IN_SYNC;
-               }
                /* Free all the SU SI assignments*/ 
+
                i_su->delete_all_susis();
 
        }               /* for (const auto& i_su : avnd->list_of_su) */

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

Reply via email to