Hi,

Has anyone had a chance to review this ticket?

Thanks,
Minh

On 16/12/16 12:46, minh chau wrote:
> Hi,
>
> Please help to review this ticket.
>
> Thanks,
> Minh
>
> On 03/11/16 14:34, minh chau wrote:
>>  osaf/services/saf/amf/amfd/cluster.cc | 12 +++++-------
>>  1 files changed, 5 insertions(+), 7 deletions(-)
>>
>>
>> In non-headless scenario, if there is a SU becoming OUT-OF-SERVICE
>> due to node reboot, the situation should be handled in 
>> node_fail_su_oper,
>> where the assignment of OUT-OF-SERVICE SU will be removed. In other 
>> words,
>> the susi_success_su_oper is not supposed to handle an OUT-OF-SERVICE SU
>> but still having assignment. When susi_success_su_oper() is called, SU
>> having assignment must be IN-SERVICE.
>>
>> In scenario of headless recovery, which currently outweights pending
>> assignment than absent assignment, that would cause 
>> susi_success_su_oper()
>> encounter an OUT-OF-SERVICE SU but still has assignment (even absent
>> assignment though). The result eventually is that AMFD will generate
>> unexpected assignment messages.
>>
>> A solution is that AMFD can revert the order of headless recovery, which
>> prioritizes to failover absent assignment first. This change should also
>> be working, because it has already been supported in non-headless, where
>> a node restarts while assignment on another node is still in progress.
>>
>> diff --git a/osaf/services/saf/amf/amfd/cluster.cc 
>> b/osaf/services/saf/amf/amfd/cluster.cc
>> --- a/osaf/services/saf/amf/amfd/cluster.cc
>> +++ b/osaf/services/saf/amf/amfd/cluster.cc
>> @@ -98,13 +98,11 @@ void avd_cluster_tmr_init_evh(AVD_CL_CB
>>              continue;
>>          }
>>
>> -        if (i_sg->any_assignment_in_progress() == false) {
>> -            if (i_sg->any_assignment_absent() == false) {
>> -                i_sg->set_fsm_state(AVD_SG_FSM_STABLE);
>> -            } else {
>> -                // failover with ABSENT SUSI, which had already been 
>> removed during headless
>> -                i_sg->failover_absent_assignment();
>> -            }
>> +        if (i_sg->any_assignment_absent()) {
>> +            // failover with ABSENT SUSI, which had already been 
>> removed during headless
>> +            i_sg->failover_absent_assignment();
>> +        } else if (i_sg->any_assignment_in_progress() == false) {
>> +            i_sg->set_fsm_state(AVD_SG_FSM_STABLE);
>>          }
>>
>>          if (i_sg->sg_fsm_state == AVD_SG_FSM_STABLE)
>>
>>
>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to