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.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to