I would prefer: We can do it in avnd_evt_avd_su_pres_evh():
case true:
Keep the logic here.
TRACE("SU term state is set to true");
/* no si must be assigned to the su */
osafassert(!m_NCS_DBLIST_FIND_FIRST(&su->si_list));
/* Mark SU as terminated by admn operation */
TRACE("Marking SU as terminated by admin operation");
m_AVND_SU_ADMN_TERM_SET(su);
m_AVND_SEND_CKPT_UPDT_ASYNC_UPDT(cb, su,
AVND_CKPT_SU_FLAG_CHANGE);
.......................
Thanks
-Nagu
> -----Original Message-----
> From: Minh Hon Chau [mailto:[email protected]]
> Sent: 05 May 2014 10:39
> To: Nagendra Kumar; [email protected];
> [email protected]; Praveen Malviya
> Cc: [email protected]
> Subject: [PATCH 1 of 1] v2 amfnd: saAmfSGCompRestartProb timer is not
> stopped after the relevant model had been deleted [#831]
>
> osaf/services/saf/amf/amfnd/su.cc | 17 ++++++++++++++++-
> 1 files changed, 16 insertions(+), 1 deletions(-)
>
>
> Problem: If the timer is started, delete the model, load model again, and kill
> component in order to escalate to the su restart. Then if the previous timer
> event comes during the escalation, it will reset component restart counter. So
> there will be no su restart at the end. The similiar problem also happens in
> case
> of saAmfSGSuRestartProb.
>
> Change: Stop both timer saAmfSGCompRestartProb and saAmfSGSuRestartProb
> (if it started) in the sequence of lock-in su
>
> diff --git a/osaf/services/saf/amf/amfnd/su.cc
> b/osaf/services/saf/amf/amfnd/su.cc
> --- a/osaf/services/saf/amf/amfnd/su.cc
> +++ b/osaf/services/saf/amf/amfnd/su.cc
> @@ -555,13 +555,28 @@ uint32_t avnd_su_curr_info_del(AVND_CB *
>
> /* reset err-esc param & oper state (if su is healthy) */
> if (!m_AVND_SU_IS_FAILED(su)) {
> + if (su->su_err_esc_tmr.is_active == true) {
> + /* Stop saAmfSGSuRestartProb timer if started */
> + if (su->su_err_esc_level == AVND_ERR_ESC_LEVEL_1)
> {
> + m_AVND_TMR_SU_ERR_ESC_STOP(cb, su);
> +
> m_AVND_SEND_CKPT_UPDT_ASYNC_UPDT(cb, su,
> AVND_CKPT_SU_ERR_ESC_TMR);
> + }
> + /* Stop saAmfSGCompRestartProb timer if started */
> + else if (su->su_err_esc_level ==
> AVND_ERR_ESC_LEVEL_0) {
> + m_AVND_TMR_COMP_ERR_ESC_STOP(cb,
> su);
> +
> m_AVND_SEND_CKPT_UPDT_ASYNC_UPDT(cb, su,
> AVND_CKPT_SU_ERR_ESC_TMR);
> + }
> + else
> + TRACE("su_err_esc_tmr is started in wrong
> su_err_esc_level(%d)", su->su_err_esc_level);
> + }
> +
> +
> su->su_err_esc_level = AVND_ERR_ESC_LEVEL_0;
> su->comp_restart_cnt = 0;
> su_reset_restart_count_in_comps(su);
> su->su_restart_cnt = 0;
> avnd_di_uns32_upd_send(AVSV_SA_AMF_SU,
> saAmfSURestartCount_ID, &su->name, su->su_restart_cnt);
> m_AVND_SEND_CKPT_UPDT_ASYNC_UPDT(cb, su,
> AVND_CKPT_SU_CONFIG);
> - /* stop su_err_esc_tmr TBD Later */
>
> /* disable the oper state (if pi su) */
> if (m_AVND_SU_IS_PREINSTANTIABLE(su)) {
------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
• 3 signs your SCM is hindering your productivity
• Requirements for releasing software faster
• Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel