Forgot to provide comments in the previous email. Please find comments inlined 
with [Nagu].

Thanks
-Nagu
> -----Original Message-----
> From: Nagendra Kumar
> Sent: 10 September 2015 15:58
> To: Hans Nordeback; Praveen Malviya; [email protected]
> Cc: [email protected]
> Subject: Re: [devel] [PATCH 1 of 1] amfd: Don't send alarm SI has no current
> active assignments if node is locked V2 [#1465]
> 
> Hi Hans N,
> 
> I tested with combination of SU/Node lock/locked-in with pres state inst
> fail/term fail.
> So, when node is locked/locked-in, even if su goes into term fail, the alarm 
> is
> not sent because the pres state becomes uninst before update_ass_state gets
> called. Hope this is ok.
> 
> Ack with the comments inlined with [Nagu] and the documentation need to
> be updated as well.
> 
> 
> Thanks
> -Nagu
> > -----Original Message-----
> > From: Hans Nordeback [mailto:[email protected]]
> > Sent: 04 September 2015 19:20
> > To: Praveen Malviya; Nagendra Kumar; [email protected]
> > Cc: [email protected]
> > Subject: [PATCH 1 of 1] amfd: Don't send alarm SI has no current
> > active assignments if node is locked V2 [#1465]
> >
> >  osaf/services/saf/amf/amfd/include/si.h |   2 ++
> >  osaf/services/saf/amf/amfd/si.cc        |  23 +++++++++++++++++++----
> >  osaf/services/saf/amf/amfd/siass.cc     |   3 +++
> >  3 files changed, 24 insertions(+), 4 deletions(-)
> >
> >
> > diff --git a/osaf/services/saf/amf/amfd/include/si.h
> > b/osaf/services/saf/amf/amfd/include/si.h
> > --- a/osaf/services/saf/amf/amfd/include/si.h
> > +++ b/osaf/services/saf/amf/amfd/include/si.h
> > @@ -109,6 +109,8 @@ public:
> >
> >     bool alarm_sent; /* SI unassigned alarm has been sent */
> >
> > +        struct avd_avnd_tag *si_on_node;   /*  the node on which this SI
> > resides */
> > +        AVD_SU *curr_su;                        /* The SU with the latest
> assignment*/
> >     void inc_curr_act_ass();
> >     void dec_curr_act_ass();
> >     void inc_curr_stdby_ass();
> > diff --git a/osaf/services/saf/amf/amfd/si.cc
> > b/osaf/services/saf/amf/amfd/si.cc
> > --- a/osaf/services/saf/amf/amfd/si.cc
> > +++ b/osaf/services/saf/amf/amfd/si.cc
> > @@ -26,6 +26,7 @@
> >  #include <csi.h>
> >  #include <proc.h>
> >  #include <si_dep.h>
> > +#include <node.h>
> >
> >  AmfDb<std::string, AVD_SI> *si_db = NULL;
> >
> > @@ -320,7 +321,9 @@ AVD_SI::AVD_SI() :
> >     list_of_sus_per_si_rank(NULL),
> >     rankedsu_list_head(NULL),
> >     invocation(0),
> > -   alarm_sent(false)
> > +   alarm_sent(false),
> > +   si_on_node{nullptr},
> > +   curr_su{nullptr}
> >  {
> >     memset(&name, 0, sizeof(SaNameT));
> >     memset(&saAmfSvcType, 0, sizeof(SaNameT)); @@ -1315,9 +1318,21
> @@
> > void AVD_SI::update_ass_state()
> >
> >             /* alarm & notifications */
> >             if (saAmfSIAssignmentState ==
> > SA_AMF_ASSIGNMENT_UNASSIGNED) {
> > -                   avd_send_si_unassigned_alarm(&name);
> > -                   alarm_sent = true;
> > -                   m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb,
> > this, AVSV_CKPT_SI_ALARM_SENT);
> > +                   osafassert(si_on_node != nullptr);
> > +                   osafassert(curr_su != nullptr);
> > +                   if ((sg_of_si->sg_ncs_spec == true) &&
> > +                       (sg_of_si->sg_type->saAmfSgtRedundancyModel ==
> > SA_AMF_NO_REDUNDANCY_MODEL) &&
> > +                       (curr_su->saAmfSUPresenceState !=
> > SA_AMF_PRESENCE_INSTANTIATION_FAILED) &&
> > +                       (curr_su->saAmfSUPresenceState !=
> > SA_AMF_PRESENCE_TERMINATION_FAILED) &&
> > +                       ((si_on_node->saAmfNodeAdminState ==
> > SA_AMF_ADMIN_SHUTTING_DOWN) ||
> > +                        (si_on_node->saAmfNodeAdminState ==
> > SA_AMF_ADMIN_LOCKED) ||
> > +                        (si_on_node->saAmfNodeAdminState ==
> > SA_AMF_ADMIN_LOCKED_INSTANTIATION))) {
> > +                           LOG_NO("Node is locked, no SI unassigned
> > alarm will be sent");
> > +                   } else {
> > +                           avd_send_si_unassigned_alarm(&name);
> > +                           alarm_sent = true;
> > +
> >     m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, this,
> > AVSV_CKPT_SI_ALARM_SENT);
> > +                   }
> >             }
> >             else {
> >                     avd_send_si_assigned_ntf(&name, oldState,
> saAmfSIAssignmentState);
> > diff --git a/osaf/services/saf/amf/amfd/siass.cc
> > b/osaf/services/saf/amf/amfd/siass.cc
> > --- a/osaf/services/saf/amf/amfd/siass.cc
> > +++ b/osaf/services/saf/amf/amfd/siass.cc
> > @@ -166,6 +166,9 @@ AVD_SU_SI_REL *avd_susi_create(AVD_CL_CB
> >     su_si->si = si;
> >     su_si->su = su;
> >
> > +   si->si_on_node = su->su_on_node;
> > +   si->curr_su = su;

[Nagu]: This need to be reset when susi is deleted.


> > +
> >     /*
> >      * Add the susi rel rec to the ordered si-list
> >      */
> 
> ------------------------------------------------------------------------------
> Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
> Get real-time metrics from all of your servers, apps and tools in one place.
> SourceForge users - Click here to start your Free Trial of Datadog now!
> http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
> _______________________________________________
> Opensaf-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel

------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to