Menu ▾ ▴

#810 Terminate_callback_timeout has a value of 0 which causes inconsistencies when performing a lock for instantiate

never
duplicate
nobody
None
defect
amf
nd
4.4.RC2
major
2015-07-14
2014-03-11
Shu Wang
No

When locking for instantiation a SU with multiple local, sa_aware components, some of the components will receive a terminate command and some don’t. The ones that don’t receive the terminate have the cleanup command called on them. We sometimes see that no components will receive the terminate command. We traced through the code and found that when the terminate callback timer is started, it has a value of 0. This then times things out very quickly which means that the components will not get the terminate callback.

avnd_comp_cbq_rec_send()
…
if (NCSCC_RC_SUCCESS == rc) {
/ start the callback response timer /
if (true == timer_start) {
TRACE("DEBUG: avnd_comp_cbq_rec_send calling comp cbk resp start with timeout : %lld ", rec->timeout); /// This is always set to 0
m_AVND_TMR_COMP_CBK_RESP_START(cb, rec, rec->timeout, rc);
m_AVND_SEND_CKPT_UPDT_ASYNC_UPDT(cb, rec, AVND_CKPT_COMP_CBK_REC_TMR);
/
Not sure why someone has written the following line. */
msg.info.ava = 0;
}
We changed the code about to send in a hardcoded timeout value and all components within the SU received the terminate. We do have defined in our config a value for the saAmfCtDefCallbackTimeout for our components.

Trace with error:
Feb 19 14:52:00.573921 osafamfnd [5039:clc.cc:0858] T1 'safComp=amfRaterComp1.2.1,safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp':FSM Enter presence state: 'SA_AMF_PRESENCE_TERMINATING(4)':FSM Exit presence state:SA_AMF_PRESENCE_UNINSTANTIATED(1)
Feb 19 14:52:00.573933 osafamfnd [5039:clc.cc:0891] >> avnd_comp_clc_st_chng_prc: Comp 'safComp=amfRaterComp1.2.1,safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp', Prv_state '4', Final_state '1'
Feb 19 14:52:00.573945 osafamfnd [5039:clc.cc:0954] TR SU and Comp Preinst. comp->su->flag '4098', comp->flag '25'
Feb 19 14:52:00.573956 osafamfnd [5039:susm.cc:1356] >> avnd_su_pres_fsm_run: 'safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp'
...
Feb 19 14:52:00.573968 osafamfnd [5039:susm.cc:1361] T1 Entering SUpresence state FSM: current state: 4, event: 8, su name:safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp
Feb 19 14:52:00.573979 osafamfnd [5039:susm.cc:2383] >> avnd_su_pres_terming_compuninst_hdler: Component Uninstantiated event in the Terminating state:'safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp' : 'safComp=amfRaterComp1.2.1,safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp'
Feb 19 14:52:00.573991 osafamfnd [5039:susm.cc:2409] TR PI SU
Feb19 14:52:00.574002 osafamfnd [5039:susm.cc:2419] TR Running the component clc FSM Feb 19 14:52:00.574012 osafamfnd [5039:clc.cc:0763] >> avnd_comp_clc_fsm_run: Comp 'safComp=amfAMQMRaterComp1.2.1,safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp', Ev '4'
Feb 19 14:52:00.574024 osafamfnd [5039:clc.cc:0817] TR stopping all
monitoring for this component Feb 19 14:52:00.574035 osafamfnd [5039:cpm.cc:0634] >> avnd_comp_pm_finalize: Comp 'safComp=amfAMQMRaterComp1.2.1,safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp'
Feb 19 14:52:00.574046 osafamfnd [5039:cpm.cc:0650] << avnd_comp_pm_finalize Feb 19 14:52:00.574057 osafamfnd [5039:clc.cc:0835] T1 safComp=amfAMQMRaterComp1.2.1,safSu=amfRaterSU1.2,safSg=amfRaterSG1,safApp=olcApp':Entering CLC FSM: presence state:'SA_AMF_PRESENCE_INSTANTIATED(3)', Event:'AVND_COMP_CLC_PRES_FSM_EV_TERM'

Code needs to be updated to set a default value for the terminate callback timeout or to use the value defined in saAmfCtDefCallbackTimeout.

OS is Linux 2.6.39-400.17.1.el6uek.x86_64

Discussion

  • Hans Feldt

    Hans Feldt - 2014-03-11
     
  • Hans Feldt

    Hans Feldt - 2014-03-11
    • status: unassigned --> duplicate
     
  • Nagendra Kumar

    Nagendra Kumar - 2015-07-14
    • Milestone: future --> never
     

Log in to post a comment.