Ack.

Thanks
-Nagu

> -----Original Message-----
> From: Praveen Malviya
> Sent: 06 September 2016 15:00
> To: [email protected]; Nagendra Kumar;
> [email protected]; [email protected]
> Cc: [email protected]
> Subject: [PATCH 1 of 1] amfnd: send recovery request to amfd for term-
> failed su [#2003]
> 
>  osaf/services/saf/amf/amfnd/sidb.cc |   3 ++-
>  osaf/services/saf/amf/amfnd/susm.cc |  14 +++++++++++++-
>  2 files changed, 15 insertions(+), 2 deletions(-)
> 
> 
> SU moved to term-failed state and repair admin opreration does not work.
> 
> When SG is unlocked, AMFND initiates active assignments by instantiating
> the only component. After instantiation failure, AMFND tries to clean up the
> component.
> Cleanup fails. AMFND marks comp and SU in TERM_FAILED state, but it
> neither responds to AMFD for the completion of assignment nor it sends any
> recovery request.
> Because of this SG remains unstable in REALIGN state.In this state, no admin
> operation is allowed.
> 
> Patch solves the problem to send a recovery request to AMFD, so that it
> deletes the assignments and marks SG stable.
> 
> diff --git a/osaf/services/saf/amf/amfnd/sidb.cc
> b/osaf/services/saf/amf/amfnd/sidb.cc
> --- a/osaf/services/saf/amf/amfnd/sidb.cc
> +++ b/osaf/services/saf/amf/amfnd/sidb.cc
> @@ -181,8 +181,9 @@ AVND_SU_SI_REC *avnd_su_si_rec_add(AVND_
>       /*
>        * Update the rest of the parameters with default values.
>        */
> -     TRACE("Marking curr assigned state of '%s' unassigned.", si_rec-
> >name.c_str());
> +     TRACE("Marking curr and previous assigned state of '%s'
> +unassigned.",si_rec->name.c_str());
>       m_AVND_SU_SI_CURR_ASSIGN_STATE_SET(si_rec,
> AVND_SU_SI_ASSIGN_STATE_UNASSIGNED);
> +     m_AVND_SU_SI_PRV_ASSIGN_STATE_SET(si_rec,
> +AVND_SU_SI_ASSIGN_STATE_UNASSIGNED);
> 
>       /*
>        * Add the csi records.
> diff --git a/osaf/services/saf/amf/amfnd/susm.cc
> b/osaf/services/saf/amf/amfnd/susm.cc
> --- a/osaf/services/saf/amf/amfnd/susm.cc
> +++ b/osaf/services/saf/amf/amfnd/susm.cc
> @@ -1846,8 +1846,20 @@ uint32_t avnd_su_pres_st_chng_prc(AVND_C
>                       /* Don't send su-oper state msg, just update su oper
> state
>                        * AMF has lost control over this component and the
> operator needs
>                        * to repair this node. Failover is not possible in this
> state.
> +                      *
> +                      * There exists one case which is not related to fail-
> over situation
> +                      * and related to fresh assignments in SU. When
> AMFD sends fresh assignments
> +                      * for a SU to AMFND, a SU can go into term-failed
> state during
> +                      * instantiation. In TERM-FAILED state, AMFND
> cleans up all the comps
> +                      * of SU. So AMFND can send su-oper state message
> so that AMFD can
> +                      * mark SG stable and make way for admin repair.
>                        */
> -                     avnd_di_uns32_upd_send(AVSV_SA_AMF_SU,
> saAmfSUOperState_ID, su->name, su->oper);
> +                     if ((si != nullptr) && (si->prv_assign_state ==
> AVND_SU_SI_ASSIGN_STATE_UNASSIGNED)) {
> +                             rc = avnd_di_oper_send(cb, su,
> AVSV_ERR_RCVR_SU_FAILOVER);
> +                             avnd_su_si_del(avnd_cb, su->name);
> +                     } else {
> +
>       avnd_di_uns32_upd_send(AVSV_SA_AMF_SU,
> saAmfSUOperState_ID, su->name, su->oper);
> +                     }
>               }
> 
>               if ((prv_st == SA_AMF_PRESENCE_INSTANTIATED) &&

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to