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

Reply via email to