Hi Thang,

ACK.

Best Regards,
ThuanTr

-----Original Message-----
From: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au> 
Sent: Tuesday, April 14, 2020 9:16 PM
To: Thuan Tran <thuan.t...@dektech.com.au>; Minh Hon Chau 
<minh.c...@dektech.com.au>
Cc: opensaf-devel@lists.sourceforge.net; Thang Duc Nguyen 
<thang.d.ngu...@dektech.com.au>
Subject: [PATCH 1/1] amfnd: correct checking su assignement pending flag [#3176]

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

Reply via email to