Hi Thang,
Can you please explain in the commit message, why the problem occured,
and how the patch is a solution for it? That is a lot easier.
Thanks
Minh
On 9/4/20 10:19 am, thang.d.nguyen wrote:
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)) {
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel