Ack. Thanks -Nagu
> -----Original Message----- > From: Minh Hon Chau [mailto:minh.c...@dektech.com.au] > Sent: 15 May 2014 18:58 > To: Nagendra Kumar; hans.nordeb...@ericsson.com; > hans.fe...@ericsson.com; Praveen Malviya > Cc: opensaf-devel@lists.sourceforge.net > Subject: [PATCH 1 of 1] v4 amfnd: Not all npi-components are restarted during > SuRestart escalation [#885] > > osaf/services/saf/amf/amfnd/susm.cc | 16 +++++++++++++--- > 1 files changed, 13 insertions(+), 3 deletions(-) > > > In case of npi su restart recovery, this problem appears because the condition > of changing su presence state to INSTANTIATED is not sufficient. > > If the component of the last csi in csi_list has been restarted first due > to componentRestart (before suRestart), amfnd can not find any next csi > and changes the su presence state to INSTANTIATED, this will miss the > restart for the rest of components. > > The fix uses UNASSIGNED csi to avoid duplication of restarting the same > component > many times during su restart, only component linked to UNASSIGNED csi is > restarted. > Therefore, the condition of changing su presence state to INSTANTIATED should > be > all csis are ASSIGNED > > 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 > @@ -2638,12 +2638,22 @@ uint32_t avnd_su_pres_restart_compinst_h > > /* get the next csi */ > curr_csi = (AVND_COMP_CSI_REC > *)m_NCS_DBLIST_FIND_NEXT(&curr_csi->si_dll_node); > - if (curr_csi) { > + /* To be taken into restart, the next found csi must be > UNASSIGNED (avoid > + * duplication of restarting component). The component linked > to csi must > + * not be in RESTARTING (avoid the component just coming in > component restart > + * recovery), and not be in INSTANTIATING (avoid the > component in progress > + * of instantiation). But for now the check for INSTANTIATING is > not included > + * because avnd_su_pres_insting_surestart_hdler has not been > implemented. > + */ > + if (curr_csi != NULL && > + > m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_UNASSIGNED(curr_csi > ) == true && > + curr_csi->comp->pres != > SA_AMF_PRESENCE_RESTARTING) { > /* we have another csi. trigger the comp fsm with > RestartEv */ > - rc = avnd_comp_clc_fsm_trigger(cb, curr_csi->comp, > AVND_COMP_CLC_PRES_FSM_EV_RESTART); > + rc = avnd_comp_clc_fsm_trigger(cb, curr_csi->comp, > + > AVND_COMP_CLC_PRES_FSM_EV_RESTART); > if (NCSCC_RC_SUCCESS != rc) > goto done; > - } else { > + } else if (all_csis_in_assigned_state(su)) { > /* => si assignment done */ > avnd_su_pres_state_set(su, > SA_AMF_PRESENCE_INSTANTIATED); > } ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel