Su-si assigment flag only is set when amfnd receives request from amfd. In SU restart escalation, the re-assignment is handled by amfnd internally. And this flag is not set in this situation. When SU is in assigning after SU restart due to escalation. The component failed and amfnd escalate it to component failover. The Amfnd will try to mark su-si as assigned temporaryly to remove assignment later. But amfnd crashes due to fail to check su-si assignment flag.
In su-si assignment/removal response to AvD, the pending flag is only checked if su_oper_state is enable. --- src/amf/amfnd/di.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/amf/amfnd/di.cc b/src/amf/amfnd/di.cc index 1f310b949..7b018682b 100644 --- a/src/amf/amfnd/di.cc +++ b/src/amf/amfnd/di.cc @@ -882,8 +882,9 @@ uint32_t avnd_di_susi_resp_send(AVND_CB *cb, AVND_SU *su, AVND_SU_SI_REC *si) { if (cb->term_state == AVND_TERM_STATE_OPENSAF_SHUTDOWN_STARTED) return rc; - // should be in assignment pending state to be here - osafassert(m_AVND_SU_IS_ASSIGN_PEND(su)); + if (m_AVND_SU_OPER_STATE_IS_ENABLED(su)) + // should be in assignment pending state to be here + osafassert(m_AVND_SU_IS_ASSIGN_PEND(su)); /* get the curr-si */ curr_si = (si) ? si : (AVND_SU_SI_REC *)m_NCS_DBLIST_FIND_FIRST(&su->si_list); -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel