Any comments  ??

> -----Original Message-----
> From: Nagendra Kumar
> Sent: 04 February 2014 14:02
> To: Hans Feldt; Hans Nordebäck; Praveen Malviya
> Cc: [email protected]
> Subject: Re: [devel] [PATCH 1 of 1] amfd: create comp if not found during
> decoding [#761]
> 
> Hum, would wait for that.
> 
> Here I am not able to understand your comments, please elaborate on that.
> Do you mean to break short or long commit message into three parts and name
> the sections?
> Give some example.
> 
> Thanks
> -Nagu
> 
> > -----Original Message-----
> > From: Hans Feldt [mailto:[email protected]]
> > Sent: 04 February 2014 13:06
> > To: Nagendra Kumar; Hans Nordebäck; Praveen Malviya
> > Cc: [email protected]
> > Subject: Re: [PATCH 1 of 1] amfd: create comp if not found during
> > decoding [#761]
> >
> >
> >
> > On 02/04/2014 06:49 AM, Nagendra Kumar wrote:
> > >>> for defects it should contain 3 paragraphs: symptom, analysis and
> > >>> change description
> > > Do we have this informed to developers or written some where ?
> >
> > I think Anders Widell is working on some text document that will be
> > stored inside the repo.
> > /Hans
> >
> > >
> > > Thanks
> > > -Nagu
> > >
> > >> -----Original Message-----
> > >> From: Hans Feldt [mailto:[email protected]]
> > >> Sent: 04 February 2014 01:58
> > >> To: Nagendra Kumar; Hans Nordebäck; Praveen Malviya
> > >> Cc: [email protected]
> > >> Subject: RE: [PATCH 1 of 1] amfd: create comp if not found during
> > >> decoding [#761]
> > >>
> > >> Please send a new patch with a corrected commit message, for
> > >> defects it should contain 3 paragraphs: symptom, analysis and
> > >> change description. See inline for comments.
> > >> "during decoding" => "during checkpointing"?
> > >> Thanks,
> > >> Hans
> > >>
> > >>> -----Original Message-----
> > >>> From: [email protected] [mailto:[email protected]]
> > >>> Sent: den 3 februari 2014 11:15
> > >>> To: Hans Feldt; Hans Nordebäck; [email protected]
> > >>> Cc: [email protected]
> > >>> Subject: [PATCH 1 of 1] amfd: create comp if not found during
> > >>> decoding [#761]
> > >>>
> > >>>   osaf/services/saf/amf/amfd/ckpt_dec.cc    |   5 +----
> > >>>   osaf/services/saf/amf/amfd/comp.cc        |  21
> +++++++++++++++++++++
> > >>>   osaf/services/saf/amf/amfd/include/comp.h |   1 +
> > >>>   3 files changed, 23 insertions(+), 4 deletions(-)
> > >>>
> > >> [Hans] missing symptom description, it could look like:
> > >>
> > >> Standby osafamfd asserts with the following log:
> > >> Jan 30 08:19:53 err sc2 osafamfd[15184]: avd_ckpt_dec.c:3163:
> > >> avsv_decode_warm_sync_rsp: Assertion '0' failed.
> > >> Which results in reboot of standby controller
> > >>
> > >> Here comes the analysis...
> > >>>
> > >>> Some times, because of timing issues, apply callback is reaching
> > >>> delayed
> > >> "is reaching delayed", not proper English. Applier not apply
> > >>
> > >>> at standby controller. It happened during component oper state
> > checkpoiting.
> > >> check pointing
> > >>
> > >>> Since apply callback is not received at standby controller,
> > >>> component is not found
> > >> applier callback is not received before check pointing of comp
> > >> runtime attributes
> > >>
> > >>> in data base and counter comp_updt is mismatched during warn sync
> > >>> and standby amfd asserts.
> > >> the mismatch is detected later when periodic warm sync is done.
> > >>
> > >> Here comes the change description...
> > >>
> > >>> Fix for this is to create comp when not found in data base and
> > >>> wait for apply callback. When apply callback comes later, the
> > >>> other parameters like
> > >> there is no "wait" going on, remove. Applier, other attributes not
> > >> parameters
> > >>> su are updated.
> > >> su, you mean other attributes in comp?
> > >>
> > >>>
> > >>> diff --git a/osaf/services/saf/amf/amfd/ckpt_dec.cc
> > >>> b/osaf/services/saf/amf/amfd/ckpt_dec.cc
> > >>> --- a/osaf/services/saf/amf/amfd/ckpt_dec.cc
> > >>> +++ b/osaf/services/saf/amf/amfd/ckpt_dec.cc
> > >>> @@ -2419,10 +2419,7 @@ static uint32_t dec_comp_oper_state(AVD_
> > >>>                 return status;
> > >>>         }
> > >>>
> > >>> -       if (NULL == (comp_struct = avd_comp_get(&comp_ptr-
> > >>> comp_info.name))) {
> > >>> -               LOG_ER("%s: comp not found, %s", __FUNCTION__,
> > >> comp_ptr->comp_info.name.value);
> > >>> -               return NCSCC_RC_FAILURE;
> > >>> -       }
> > >>> +       comp_struct = avd_comp_get_or_create(&comp_ptr-
> > >>> comp_info.name);
> > >>>
> > >>>         /* Update the fields received in this checkpoint message */
> > >>>         comp_struct->saAmfCompOperState = comp_ptr-
> > saAmfCompOperState;
> > >>> diff --git a/osaf/services/saf/amf/amfd/comp.cc
> > >>> b/osaf/services/saf/amf/amfd/comp.cc
> > >>> --- a/osaf/services/saf/amf/amfd/comp.cc
> > >>> +++ b/osaf/services/saf/amf/amfd/comp.cc
> > >>> @@ -1570,6 +1570,27 @@ static void comp_ccb_apply_cb(CcbUtilOpe
> > >>>         TRACE_LEAVE();
> > >>>   }
> > >>>
> > >>> +/**
> > >>> + * Return an Comp object if it exist, otherwise create it and
> > >>> + * return a reference to the new object.
> > >>> + * @param dn
> > >>> + *
> > >>> + * @return AVD_COMP*
> > >>> + */
> > >>> +AVD_COMP *avd_comp_get_or_create(const SaNameT *dn) {
> > >>> +       AVD_COMP *comp = avd_comp_get(dn);
> > >>> +
> > >>> +       if (!comp) {
> > >>> +               TRACE("'%s' does not exist, creating it", dn->value);
> > >>> +               comp = avd_comp_new(dn);
> > >>> +               osafassert(comp != NULL);
> > >>> +               avd_comp_db_add(comp);
> > >>> +       }
> > >>> +
> > >>> +       return comp;
> > >>> +}
> > >>> +
> > >>>   void avd_comp_constructor(void)
> > >>>   {
> > >>>         NCS_PATRICIA_PARAMS patricia_params; diff --git
> > >>> a/osaf/services/saf/amf/amfd/include/comp.h
> > >>> b/osaf/services/saf/amf/amfd/include/comp.h
> > >>> --- a/osaf/services/saf/amf/amfd/include/comp.h
> > >>> +++ b/osaf/services/saf/amf/amfd/include/comp.h
> > >>> @@ -234,5 +234,6 @@ extern AVD_COMPCS_TYPE
> *avd_compcstype_g
> > >> extern
> > >>> AVD_COMPCS_TYPE *avd_compcstype_getnext(const SaNameT *dn);
> > extern
> > >>> AVD_COMPCS_TYPE * avd_compcstype_find_match(const SaNameT
> *csi,
> > >> const
> > >>> AVD_COMP *comp);  extern void avd_compcstype_constructor(void);
> > >>> +extern AVD_COMP *avd_comp_get_or_create(const SaNameT *dn);
> > >>>
> > >>>   #endif
> > >
> > >
> >
> 
> ------------------------------------------------------------------------------
> Managing the Performance of Cloud-Based Applications Take advantage of what
> the Cloud has to offer - Avoid Common Pitfalls.
> Read the Whitepaper.
> http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clk
> trk
> _______________________________________________
> Opensaf-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to