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