Ack. Thanks -Nagu > -----Original Message----- > From: Alex Jones [mailto:[email protected]] > Sent: 21 May 2014 21:56 > To: [email protected]; Praveen Malviya > Cc: [email protected] > Subject: [devel] [PATCH 1 of 1] amfnd: fix process of proxy/proxied cleanup on > OpenSAF shutdown [#629] > > 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=Q5 > 0chassis, 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)) > + { > + 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); > > > ------------------------------------------------------------------------------ > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE > Instantly run your Selenium tests across 300+ browser/OS combos. > Get unparalleled scalability from the best Selenium testing platform available > Simple to use. Nothing to install. Get started now for free." > http://p.sf.net/sfu/SauceLabs > _______________________________________________ > Opensaf-devel mailing list > [email protected] > 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 [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
