On 15-May-14 6:21 AM, Minh Hon Chau wrote:
> osaf/services/saf/amf/amfnd/susm.cc | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
>
> Problem: In case of npi su restart recovery, the condition to change su
> presence
> state 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.
>
> Change: This version (v2) uses UNASSIGNED csi (instead of marking all
> components
> FAILED as in first version) 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
> @@ -2637,12 +2637,15 @@ 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) {
> + if (curr_csi &&
> +
> m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_UNASSIGNED(curr_csi) && /* avoid
> restarting the already-restarted comp */
> + curr_csi->comp->pres != SA_AMF_PRESENCE_RESTARTING &&
> /* avoid restarting the comp just coming into componentRestart recovery */
> + curr_csi->comp->pres != SA_AMF_PRESENCE_INSTANTIATING)
> { /* avoid restarting the comp in progress of instantiation */
Why check for "Instantiating" state has been included here. In both
component restart and su restart recovery policy, a component never
enters into INSTANTIATING presence state. It was not in the first
version of this patch and discussions followed on it.
Thanks
Praveen
> /* 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);
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel