[devel] [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
Re: [devel] [PATCH 1 of 1] v4 amfnd: Not all npi-components are restarted during SuRestart escalation [#885]
I will push this after incorporating the comments. Thanks, Praveen On 16-May-14 1:02 PM, Hans Feldt wrote: > Sorry for being picky but see inline ... > > Anyway ack from me, but this could be fixed (by the maintainer) before push. > > Thanks, > Hans > >> -Original Message- >> From: Minh Hon Chau [mailto:minh.c...@dektech.com.au] >> Sent: den 15 maj 2014 15:28 >> To: nagendr...@oracle.com; Hans Nordebäck; Hans Feldt; >> praveen.malv...@oracle.com >> Cc: opensaf-devel@lists.sourceforge.net >> Subject: [PATCH 1 of 1] v4 amfnd: Not all npi-components are restarted >> during SuRestart escalation [#885] > [Hans] again the problem is repeated in the short commit message. This one > should just say in forward terms what the patch is doing with the code base > like: > "amfnd: fix SU restart escalation [#885]" > >> osaf/services/saf/amf/amfnd/susm.cc | 16 +--- >> 1 files changed, 13 insertions(+), 3 deletions(-) >> >> > [Hans] problem/symptom should be here (which now is the short commit message) > > This is the analysis: >> 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. > [Hans] cryptic comment that sounds like a TODO? > >> + */ >> +if (curr_csi != NULL && >> + >> m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_UNASSIGNED(curr_csi) == true && >> +curr_csi->comp->pres != SA_AMF_PRESENCE_RESTARTING) { > [Hans] some parenthesis around the expressions would be nice and is safer > >> /* 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)) { > [Hans] == true > >> /* => 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
Re: [devel] [PATCH 1 of 1] v4 amfnd: Not all npi-components are restarted during SuRestart escalation [#885]
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
Re: [devel] [PATCH 1 of 1] v4 amfnd: Not all npi-components are restarted during SuRestart escalation [#885]
Sorry for being picky but see inline ... Anyway ack from me, but this could be fixed (by the maintainer) before push. Thanks, Hans > -Original Message- > From: Minh Hon Chau [mailto:minh.c...@dektech.com.au] > Sent: den 15 maj 2014 15:28 > To: nagendr...@oracle.com; Hans Nordebäck; Hans Feldt; > praveen.malv...@oracle.com > Cc: opensaf-devel@lists.sourceforge.net > Subject: [PATCH 1 of 1] v4 amfnd: Not all npi-components are restarted during > SuRestart escalation [#885] [Hans] again the problem is repeated in the short commit message. This one should just say in forward terms what the patch is doing with the code base like: "amfnd: fix SU restart escalation [#885]" > > osaf/services/saf/amf/amfnd/susm.cc | 16 +--- > 1 files changed, 13 insertions(+), 3 deletions(-) > > [Hans] problem/symptom should be here (which now is the short commit message) This is the analysis: > 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. [Hans] cryptic comment that sounds like a TODO? > + */ > + if (curr_csi != NULL && > + > m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_UNASSIGNED(curr_csi) == true && > + curr_csi->comp->pres != SA_AMF_PRESENCE_RESTARTING) { [Hans] some parenthesis around the expressions would be nice and is safer > /* 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)) { [Hans] == true > /* => 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