Hi Thuan, Thanks for pointing out the issue. I updated in V2 and sent for review.
B.R/Thang -----Original Message----- From: Tran Thuan <thuan.t...@dektech.com.au> Sent: Thursday, December 26, 2019 4:38 PM To: 'thang.d.nguyen' <thang.d.ngu...@dektech.com.au>; gary....@dektech.com.au; minh.c...@dektech.com.au Cc: opensaf-devel@lists.sourceforge.net Subject: RE: [devel] [PATCH 1/1] amfd: one adm op activa on SU at a time [#3132] Hi Thang, I found an old commit that may lead to your ticket. Can you check if your changes bring old issue back? ---------- amfd: allow lock on su after issue of shutdown [#582] Shutdown operation was rejected because shitdown operation was going on. Amf should respect lock operation as per Specs. Now, if lock is issued on su when shutdown is going on, then Amf will send response for shutdown first and then start lock operation. Once lock operation is completed, then Amf will respond to imm for lock operation. /* Avoid multiple admin operations on other SUs belonging to the same SG. */ for (su_ptr = su->sg_of_su->list_of_su; su_ptr != NULL; su_ptr = su_ptr->sg_list_su_next) { - if (su_ptr->pend_cbk.invocation != 0) { + /* su's sg_fsm_state is checked below, just check other su. */ + if ((su != su_ptr) && (su_ptr->pend_cbk.invocation != + 0)) { ---------- Another concern that why you move your checking to before check "Admin operation on Active middleware SU is not allowed"? Why not keep it after this check? Best Regards, ThuanTr -----Original Message----- From: thang.d.nguyen <thang.d.ngu...@dektech.com.au> Sent: Wednesday, December 25, 2019 9:37 AM To: gary....@dektech.com.au; minh.c...@dektech.com.au Cc: opensaf-devel@lists.sourceforge.net Subject: [devel] [PATCH 1/1] amfd: one adm op activa on SU at a time [#3132] Not allow admin op on SU if other is activating. --- src/amf/amfd/su.cc | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/amf/amfd/su.cc b/src/amf/amfd/su.cc index e1da8f726..6223cd9e4 100644 --- a/src/amf/amfd/su.cc +++ b/src/amf/amfd/su.cc @@ -1337,6 +1337,23 @@ static void su_admin_op_cb(SaImmOiHandleT immoi_handle, goto done; } + node = su->get_node_ptr(); + if (node->admin_node_pend_cbk.admin_oper != 0) { + report_admin_op_error( + immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN, nullptr, + "Node'%s' hosting SU'%s', undergoing admin operation'%u'", + node->name.c_str(), su->name.c_str(), + node->admin_node_pend_cbk.admin_oper); + goto done; + } + if (su->pend_cbk.invocation != 0) { + report_admin_op_error( + immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN, nullptr, + "SU'%s', undergoing admin operation'%u'", + su->name.c_str(), su->pend_cbk.admin_oper); + goto done; + } + if ((su->sg_of_su->sg_ncs_spec == true) && (cb->node_id_avd == su->su_on_node->node_info.nodeId)) { report_admin_op_error( @@ -1469,15 +1486,6 @@ static void su_admin_op_cb(SaImmOiHandleT immoi_handle, goto done; } } - node = su->get_node_ptr(); - if (node->admin_node_pend_cbk.admin_oper != 0) { - report_admin_op_error( - immoi_handle, invocation, SA_AIS_ERR_TRY_AGAIN, nullptr, - "Node'%s' hosting SU'%s', undergoing admin operation'%u'", - node->name.c_str(), su->name.c_str(), - node->admin_node_pend_cbk.admin_oper); - goto done; - } /* Validation has passed and admin operation should be done. Proceed with * it... */ -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel