During SU restart, component is instantiated failed. It makes component failover. In avnd_su_si_oper_done(), the buffered msg need removing if the SU is in disable oper state. --- src/amf/amfnd/susm.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/amf/amfnd/susm.cc b/src/amf/amfnd/susm.cc index d8ef66ea2..d3c8226f5 100644 --- a/src/amf/amfnd/susm.cc +++ b/src/amf/amfnd/susm.cc @@ -309,6 +309,12 @@ uint32_t avnd_su_siq_prc(AVND_CB *cb, AVND_SU *su) { /* initiate si asignment / removal */ rc = avnd_su_si_msg_prc(cb, su, &siq->info); + /* get the least-recent buffered msg, if any */ + siq = reinterpret_cast<AVND_SU_SIQ_REC *>(m_NCS_DBLIST_FIND_LAST(&su->siq)); + if (!siq) { + TRACE_LEAVE(); + return rc; + } // Siq will used to su-si respond later // in case modify SU-SI during SURestart if ((siq->info.msg_act != AVSV_SUSI_ACT_MOD) || @@ -1214,8 +1220,9 @@ uint32_t avnd_su_si_oper_done(AVND_CB *cb, AVND_SU *su, AVND_SU_SI_REC *si) { // Modify event during SURestart should be respond siq = reinterpret_cast<AVND_SU_SIQ_REC *>(m_NCS_DBLIST_FIND_LAST(&su->siq)); - if (siq && (siq->info.msg_act == AVSV_SUSI_ACT_MOD) && - m_AVND_SU_IS_RESTART(su)) { + if (siq && (((siq->info.msg_act == AVSV_SUSI_ACT_MOD) && + m_AVND_SU_IS_RESTART(su)) || + (m_AVND_SU_OPER_STATE_IS_DISABLED(su)))) { ncs_db_link_list_delink(&su->siq, &siq->su_dll_node); /* delete the buffered msg */ avnd_su_siq_rec_del(avnd_cb, su, siq); -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel