Ack with minor comment inline.
/HansF

> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> Sent: den 2 september 2014 08:36
> To: Hans Feldt; Hans Nordebäck; [email protected]
> Cc: [email protected]
> Subject: [PATCH 1 of 1] amfd: send SI admin response after sg becomes stable 
> [#1022]
> 
>  osaf/services/saf/amf/amfd/sg.cc     |  9 +++++++++
>  osaf/services/saf/amf/amfd/sgproc.cc |  9 ---------
>  2 files changed, 9 insertions(+), 9 deletions(-)
> 
> 
> When node(hosting act appl) goes down during SI lock, Amfd
> is not sending admin response to imm. This makes admin command to timeout.
> This happens because during SI lock, Standby appl sends response, but
> Act appl node goes down and Amf waits for quisced susi response to send imm 
> response
> in avd_su_si_assign_evh, which never comes as node has gone down.
> So, ideally, admin response should be sent when marking Sg stable, this will
> make sure to send admin response in any scenario including node down.
> 
> diff --git a/osaf/services/saf/amf/amfd/sg.cc 
> b/osaf/services/saf/amf/amfd/sg.cc
> --- a/osaf/services/saf/amf/amfd/sg.cc
> +++ b/osaf/services/saf/amf/amfd/sg.cc
> @@ -1620,6 +1620,15 @@ void AVD_SG::set_fsm_state(AVD_SG_FSM_ST
>                       adminOp_invocationId = 0;
>                       adminOp = static_cast<SaAmfAdminOperationIdT>(0);
>               }
> +             if (sg_fsm_state == AVD_SG_FSM_STABLE) {
[Hans] this if statement does not seem to be needed since it is already there 
just above in the code

> +                     for (AVD_SI* si = list_of_si; si != NULL; si = 
> si->sg_list_of_si_next) {
> +                             if (si->invocation != 0) {
> +                                     
> avd_saImmOiAdminOperationResult(avd_cb->immOiHandle,
> +                                                     si->invocation, 
> SA_AIS_OK);
> +                                     si->invocation = 0;
> +                             }
> +                     }
> +             }
>       }
>  }
> 
> diff --git a/osaf/services/saf/amf/amfd/sgproc.cc 
> b/osaf/services/saf/amf/amfd/sgproc.cc
> --- a/osaf/services/saf/amf/amfd/sgproc.cc
> +++ b/osaf/services/saf/amf/amfd/sgproc.cc
> @@ -1201,15 +1201,6 @@ void avd_su_si_assign_evh(AVD_CL_CB *cb,
>                               } else
>                                       ; // wait for SG to become STABLE
>                       }
> -                     if (su->sg_of_su->sg_fsm_state == AVD_SG_FSM_STABLE){
> -                             for (AVD_SI* si = su->sg_of_su->list_of_si; si 
> != NULL; si = si->sg_list_of_si_next) {
> -                                     if (si->invocation != 0) {
> -                                             
> avd_saImmOiAdminOperationResult(avd_cb->immOiHandle,
> -                                                             si->invocation, 
> SA_AIS_OK);
> -                                             si->invocation = 0;
> -                                     }
> -                             }
> -                     }
>               }
>               /* also check for pending clm callback operations */
>               if (su->su_on_node->clm_pend_inv != 0) {

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to