>> for defects it should contain 3 paragraphs: symptom, analysis and change >> description Do we have this informed to developers or written some where ?
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.clktrk _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
