Hi Praveen

ack (code review)

Thanks


> On 30 Sep. 2016, at 4:54 pm, [email protected] wrote:
> 
> osaf/services/saf/amf/amfd/sg_nway_fsm.cc |  10 ++++++++++
> osaf/services/saf/amf/amfd/si.cc          |   8 ++++++--
> 2 files changed, 16 insertions(+), 2 deletions(-)
> 
> 
> AMF make SI active in two SUs when a component faults with su-failover 
> recovery
> in removal callback during lock operation on SU. In
> 
> As a part of lock operation when quiesced assignment gets successful for
> both SI1 and SI2 in the locked SU1, AMFD makes SU2 active for both the SIs and
> sends SU level delete to SU1. Comp1 in SU1 faults with su-failover recovery 
> while handling
> CSI Remove callback. AMFD makes SU3 active for both SIs as part of recovery. 
> Since SU2
> was already made active after successful quiesced assignments, AMFD should 
> not perform
> failover of SI1 and SI2 to SU3.
> 
> Patch avoids failover if SI is already active in some other healthy SU.
> 
> diff --git a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc 
> b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
> --- a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
> +++ b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
> @@ -2999,6 +2999,16 @@ void avd_sg_nway_node_fail_stable(AVD_CL
>               if (curr_susi == susi)
>                       continue;
> 
> +             /*
> +                This node and its SUs are already marked OOS. 
> +                If a valid active SISU exists for this SI on some other node 
> and this SI 
> +                is not having any sponsor then continue the for loop as for 
> this 
> +                SI (curr_susi->si) neither failover is required nor deletion 
> of all 
> +                assignments. This curr_susi will be deleted in this function.
> +              */
> +             if ((curr_susi->si->is_active() == true) && 
> (curr_susi->si->spons_si_list == nullptr))
> +                     continue;
> +                     
>               if ((SA_AMF_HA_ACTIVE == curr_susi->state) ||
>                   (SA_AMF_HA_QUIESCED == curr_susi->state) || 
> (SA_AMF_HA_QUIESCING == curr_susi->state)) {
>                       /* identify the most preferred standby su for this si */
> diff --git a/osaf/services/saf/amf/amfd/si.cc 
> b/osaf/services/saf/amf/amfd/si.cc
> --- a/osaf/services/saf/amf/amfd/si.cc
> +++ b/osaf/services/saf/amf/amfd/si.cc
> @@ -1553,8 +1553,12 @@ void AVD_SI::update_alarm_state(bool ala
> bool AVD_SI::is_active() const
> {
>       for (AVD_SU_SI_REL *sisu = list_of_sisu; sisu != nullptr; sisu = 
> sisu->si_next) {
> -             if ((sisu->state == SA_AMF_HA_ACTIVE) && (sisu->fsm == 
> AVD_SU_SI_STATE_ASGND) &&
> -                             (sisu->su->saAmfSuReadinessState == 
> SA_AMF_READINESS_IN_SERVICE)) {
> +             if ((sisu->state == SA_AMF_HA_ACTIVE) &&
> +                     ((sisu->fsm == AVD_SU_SI_STATE_ASGND) ||
> +                      (sisu->fsm == AVD_SU_SI_STATE_ASGN) ||
> +                      (sisu->fsm == AVD_SU_SI_STATE_MODIFY)) &&
> +                     (sisu->si->saAmfSIAdminState == SA_AMF_ADMIN_UNLOCKED) 
> &&
> +                     (sisu->su->saAmfSuReadinessState == 
> SA_AMF_READINESS_IN_SERVICE)) {
>                       return true;
>               }
>       }


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to