- si_dep_state is changed to "failover under progress" when lock active dependent SU due to sponsor SU failover is also under going. When sponsor ready, new active assignment for dependent SU done but SG alignment skip almost steps due to incorrect si_dep_state. Then lock SU under this SG keep return TRY_AGAIN forever. - Set si_dep_state properly in new active assignment. - Allow lock SU even SG tolerance timer is running. --- src/amf/amfd/sg_2n_fsm.cc | 2 ++ src/amf/amfd/su.cc | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/amf/amfd/sg_2n_fsm.cc b/src/amf/amfd/sg_2n_fsm.cc index 525e30049..e3d970fa8 100644 --- a/src/amf/amfd/sg_2n_fsm.cc +++ b/src/amf/amfd/sg_2n_fsm.cc @@ -659,6 +659,8 @@ static bool avd_sg_2n_assign_act_si(AVD_CL_CB *cb, AVD_SG *sg, AVD_SU *su) { if (avd_new_assgn_susi(cb, su, i_si, SA_AMF_HA_ACTIVE, false, &tmp_susi) == NCSCC_RC_SUCCESS) { l_flag = true; + if (i_si->si_dep_state == AVD_SI_FAILOVER_UNDER_PROGRESS) + avd_sidep_si_dep_state_set(i_si, AVD_SI_ASSIGNED); } else { LOG_ER("%s:%u: %s", __FILE__, __LINE__, i_si->name.c_str()); } diff --git a/src/amf/amfd/su.cc b/src/amf/amfd/su.cc index 5a6c69c33..a85f9d1c9 100644 --- a/src/amf/amfd/su.cc +++ b/src/amf/amfd/su.cc @@ -1394,7 +1394,8 @@ static void su_admin_op_cb(SaImmOiHandleT immoi_handle, } /* if Tolerance timer is running for any SI's withing this SG, then return * SA_AIS_ERR_TRY_AGAIN */ - if (sg_is_tolerance_timer_running_for_any_si(su->sg_of_su)) { + if ((op_id != SA_AMF_ADMIN_LOCK) && + sg_is_tolerance_timer_running_for_any_si(su->sg_of_su)) { report_admin_op_error( immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN, nullptr, "Tolerance timer is running for some of the SI's in the SG '%s', " -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel