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

Reply via email to