Ack.

Thanks
-Nagu

> -----Original Message-----
> From: Praveen Malviya
> Sent: 13 April 2016 12:12
> To: [email protected]; Nagendra Kumar;
> [email protected]; [email protected]
> Cc: [email protected]
> Subject: [PATCH 1 of 1] amfd: respond to IMM for admin op status when SG
> becomes stable [#1740] V2
> 
>  osaf/services/saf/amf/amfd/sgproc.cc |  9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
> 
> 
> If unlock admin operation on SU1 is timed just after cluster timer expiry,
> AMFD will start assignment for SU1. During this phase, some other SUs in
> same SG may be in INSTANTIATING state. These SUs may move to
> INSTANTIATION state before the assignment due to unlock operation is over
> in SU1 and becomes eligible for assignments. Now when AMFD gets
> assignment response from AMFND, it will start assignment for other SUs in
> SG_FSM. Although assignment in SU1 is over, SG remains in UNSTABLE state
> as assignmnets in other SUs started. Because of this AMFD loses the context
> of admin operation and when SG becomes stable it never responds to IMM
> for the completed operation.
> 
> Patch fixes the problem by checking each SU for pending admin operations
> LOCK, UNLOCK and SHUTDOWN when SG becomes stable.
> 
> diff --git a/osaf/services/saf/amf/amfd/sgproc.cc
> b/osaf/services/saf/amf/amfd/sgproc.cc
> --- a/osaf/services/saf/amf/amfd/sgproc.cc
> +++ b/osaf/services/saf/amf/amfd/sgproc.cc
> @@ -1520,10 +1520,13 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
>                       process_su_si_response_for_comp(su);
>               } else {
>                       if (n2d_msg->msg_info.n2d_su_si_assign.error ==
> NCSCC_RC_SUCCESS) {
> -                             if ((su->sg_of_su->sg_redundancy_model ==
> SA_AMF_N_WAY_REDUNDANCY_MODEL) &&
> -                                             (su->sg_of_su->sg_fsm_state
> == AVD_SG_FSM_STABLE)) {
> +                             if (su->sg_of_su->sg_fsm_state ==
> AVD_SG_FSM_STABLE) {
>                                       for (const auto& temp_su : su-
> >sg_of_su->list_of_su) {
> -                                             temp_su-
> >complete_admin_op(SA_AIS_OK);
> +                                             SaAmfAdminOperationIdT
> op_id = temp_su->get_admin_op_id();
> +                                             if ((op_id ==
> SA_AMF_ADMIN_SHUTDOWN) ||
> +                                                             (op_id ==
> SA_AMF_ADMIN_LOCK) ||
> +                                                             (op_id ==
> SA_AMF_ADMIN_UNLOCK))
> +                                                     temp_su-
> >complete_admin_op(SA_AIS_OK);
>                                       }
>                               } else
>                                       ; // wait for SG to become STABLE

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to