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

Reply via email to