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