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
