Ack.
Thanks
Praveen
On 28-Mar-14 5:33 PM, nagendr...@oracle.com wrote:
>   osaf/services/saf/avsv/avd/avd_su.c |  9 +++++++++
>   1 files changed, 9 insertions(+), 0 deletions(-)
>
>
> Problem: When Su admin operation is run on su, whose node is absent,
> then amfd return TIMEOUT because node is absent and it is not able
> to send message to amfnd. At the same time, Amfd increases
> async_updt_cnt.node_updt and send checkpoint to standby controller.
> On Standby controller, since node is absent so node id is not
> in the data base, so in dec_node_snd_msg_id, avd_node_find_nodeid
> return NULL and async_updt_cnt.node_updt is not increamented.
> This causes mismatch of async_updt_cnt.node_updt on Act controller
> and Standby controller during warm sync.
>
> Analysis: Amfd should return Error as it doesn't know the state of su
> or node.
>
> Fix: Amfd is returning BAD_OP when such condition occurs.
> This avoids mismatch in async_updt_cnt.node_updt between Act controller
> and Standby controller.
>
> diff --git a/osaf/services/saf/avsv/avd/avd_su.c 
> b/osaf/services/saf/avsv/avd/avd_su.c
> --- a/osaf/services/saf/avsv/avd/avd_su.c
> +++ b/osaf/services/saf/avsv/avd/avd_su.c
> @@ -1149,6 +1149,15 @@ static void su_admin_op_cb(SaImmOiHandle
>                       goto done;
>               }
>   
> +             if ((su->saAmfSUOperState == SA_AMF_OPERATIONAL_DISABLED) &&
> +                             (su->su_on_node->saAmfNodeOperState == 
> SA_AMF_OPERATIONAL_DISABLED)) {
> +                     /* This means that node on which this su is hosted, is 
> absent. */
> +                     LOG_NO("Admin repair request for '%s', hosting node'%s' 
> is absent", su_name->value,
> +                                     su->su_on_node->name.value);
> +                     rc = SA_AIS_ERR_BAD_OPERATION;
> +                     goto done;
> +             }
> +
>               /* forward the admin op req to the node director */
>               if (avd_admin_op_msg_snd(su_name, AVSV_SA_AMF_SU, op_id,
>                       su->su_on_node) == NCSCC_RC_SUCCESS) {


------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees_APR
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to