Update su-si assignment flag in case SU restart from error escalation. --- src/amf/amfnd/susm.cc | 11 +++++++++++ 1 file changed, 11 insertions(+)
diff --git a/src/amf/amfnd/susm.cc b/src/amf/amfnd/susm.cc index 86811f1e4..0d2896e31 100644 --- a/src/amf/amfnd/susm.cc +++ b/src/amf/amfnd/susm.cc @@ -489,6 +489,12 @@ static uint32_t assign_si_to_su(const AVND_CB *cb, AVND_SU_SI_REC *si, LOG_NO("Assigning '%s' %s to '%s'", si->name.c_str(), ha_state[si->curr_state], su->name.c_str()); + // In case SU is re-assign after SU restarts + if (!m_AVND_SU_IS_ASSIGN_PEND(su) && + m_AVND_SU_IS_RESTART(su) && + (su_all_comps_restartable(*su) == true)) + m_AVND_SU_ASSIGN_PEND_SET(su); + /* initiate the si assignment for pi su */ if (m_AVND_SU_IS_PREINSTANTIABLE(su)) { uint32_t rank; @@ -1148,6 +1154,11 @@ uint32_t avnd_su_si_oper_done(AVND_CB *cb, AVND_SU *su, AVND_SU_SI_REC *si) { if (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_ASSIGNING(curr_si)) { m_AVND_SU_SI_CURR_ASSIGN_STATE_SET(curr_si, AVND_SU_SI_ASSIGN_STATE_ASSIGNED); + // In case SU is re-assign after SU restarts + if (m_AVND_SU_IS_ASSIGN_PEND(su) && + m_AVND_SU_IS_RESTART(su) && + (su_all_comps_restartable(*su) == true)) + m_AVND_SU_ASSIGN_PEND_RESET(su); LOG_NO("Assigned '%s' %s to '%s'", curr_si->name.c_str(), ha_state[curr_si->curr_state], su->name.c_str()); } else if (m_AVND_SU_SI_CURR_ASSIGN_STATE_IS_REMOVING(curr_si)) { -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel