Ack /Hans > -----Original Message----- > From: praveen malviya [mailto:praveen.malv...@oracle.com] > Sent: den 29 maj 2014 14:34 > To: opensaf-devel@lists.sourceforge.net > Cc: Alex Jones > Subject: Re: [devel] [PATCH 1 of 1] amfnd: fix process of proxy/proxied > cleanup on OpenSAF shutdown [#629] > > I will push this patch after incorporating the minor comment if all > maintainers agree. > > Thanks, > Praveen > On 28-May-14 6:09 PM, praveen malviya wrote: > > Ack with one minor comment. > > > > Thanks, > > Praveen > > On 21-May-14 9:56 PM, Alex Jones wrote: > >> osaf/services/saf/amf/amfnd/clc.cc | 20 ++++++++++++++++++++ > >> 1 files changed, 20 insertions(+), 0 deletions(-) > >> > >> > >> May 2 15:22:11 linux osafamfnd[2990]: NO > >> 'safSu=Management-SU1,safSg=Management-2N,safApp=ManagementApp' Presence > State INSTANTIATED => TERMINATION_FAILED > >> May 2 15:22:38 linux osafamfnd[2990]: ER AMF director unexpectedly crashed > >> May 2 15:22:38 linux osafamfnd[2990]: Rebooting OpenSAF NodeId = 131343 > >> EE Name = > safEE=Linux_os_hosting_clm_node,safHE=Stirling_Blade_slot_1,safDomain=Q50chassis, > Reason: local AVD down(Adest) or both AVD > down(Vdest) received, OwnNodeId = 131343, SupervisionTime = 60 > >> May 2 15:22:38 linux opensaf_reboot: Rebooting local node; timeout=60 > >> > >> On OpenSAF shutdown, amfnd doesn't wait for the proxied components of a > >> proxy to > >> terminate before terminating the proxy. It terminates the proxy via > >> "CLC-CLI > >> cleanup", and the proxied component via the > >> SaAmfProxiedComponentCleanupCallbackT in the proxy. If the proxied > >> component > >> takes some time to terminate, amfnd doesn't wait and terminates the proxy. > >> amfnd never gets the response from SaAmfProxiedComponentCleanupCallbackT > >> (because the proxy has been terminated), and thinks that the termination > >> of the > >> proxied component timed out. > >> > >> amfnd needs to delay terminating the proxy until all the proxy's proxied > >> components have terminated. > >> > >> diff --git a/osaf/services/saf/amf/amfnd/clc.cc > >> b/osaf/services/saf/amf/amfnd/clc.cc > >> --- a/osaf/services/saf/amf/amfnd/clc.cc > >> +++ b/osaf/services/saf/amf/amfnd/clc.cc > >> @@ -831,6 +831,23 @@ uint32_t avnd_comp_clc_fsm_run(AVND_CB * > >> } > >> } > >> > >> + /* can we clean up the proxy now? */ > >> + if (m_AVND_COMP_TYPE_IS_PROXIED(comp) && > >> + (AVND_TERM_STATE_OPENSAF_SHUTDOWN_STARTED == cb->term_state || > >> + AVND_TERM_STATE_NODE_FAILOVER_TERMINATING == cb->term_state) && > >> + (ev == AVND_COMP_CLC_PRES_FSM_EV_CLEANUP_SUCC || > >> + ev == AVND_COMP_CLC_PRES_FSM_EV_CLEANUP_FAIL)) > > For readability each comparison can also be kept in (). > > > >> + { > >> + AVND_COMP *proxy = comp->pxy_comp; > >> + rc = avnd_comp_unreg_prc(cb, comp, proxy); > >> + > >> + /* if proxy got unset then we can continue with proxy's > >> termination */ > >> + if (rc == NCSCC_RC_SUCCESS && !m_AVND_COMP_TYPE_IS_PROXY(proxy)) > >> + { > >> + rc = avnd_comp_clc_fsm_run(avnd_cb, proxy, > >> AVND_COMP_CLC_PRES_FSM_EV_CLEANUP); > >> + } > >> + } > >> + > >> TRACE_1("'%s':Entering CLC FSM: presence state:'%s', > >> Event:'%s'", > >> > >> comp->name.value,pres_state[prv_st],pres_state_evt[ev]); > >> > >> @@ -1808,6 +1825,9 @@ uint32_t avnd_comp_clc_inst_clean_hdler( > >> avnd_comp_cbq_del(cb, comp, true); > >> /* call the cleanup callback */ > >> rc = avnd_comp_cbk_send(cb, comp, > >> AVSV_AMF_PXIED_COMP_CLEAN, 0, 0); > >> + } else if (m_AVND_COMP_TYPE_IS_PROXY(comp) && comp->pxied_list.n_nodes) > >> { > >> + /* if there are still outstanding proxied components we can't > >> terminate right now */ > >> + return rc; > >> } else > >> /* cleanup the comp */ > >> rc = avnd_comp_clc_cmd_execute(cb, comp, > >> AVND_COMP_CLC_CMD_TYPE_CLEANUP); > >> > > > > ------------------------------------------------------------------------------ > > Time is money. Stop wasting it! Get your web API in 5 minutes. > > www.restlet.com/download > > http://p.sf.net/sfu/restlet > > _______________________________________________ > > Opensaf-devel mailing list > > Opensaf-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/opensaf-devel > > > ------------------------------------------------------------------------------ > Time is money. Stop wasting it! Get your web API in 5 minutes. > www.restlet.com/download > http://p.sf.net/sfu/restlet > _______________________________________________ > Opensaf-devel mailing list > Opensaf-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensaf-devel
------------------------------------------------------------------------------ Time is money. Stop wasting it! Get your web API in 5 minutes. www.restlet.com/download http://p.sf.net/sfu/restlet _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel