Ack, code review only.

Thanks,
Praveen


On 17-Nov-16 3:58 PM, Long Nguyen wrote:
> Hi Praveen,
>
> In the trace, for example, in SC-1, we can see the code was performed like:
>
> Nov 14 11:02:27.743481 osafamfd [486:sg.cc:1693] >> set_fsm_state
> ...
> Nov 14 11:02:27.744077 osafamfd [486:sg.cc:1716] TR Admin operation
> finishes on SI:'safSi=SC-2N,safApp=OpenSAF'
> *Nov 14 11:02:27.744090 osafamfd [486:imm.cc:1971] >>
> avd_saImmOiAdminOperationResult: inv:17179869185, res:1**
> **Nov 14 11:02:27.744106 osafamfd [486:imm.cc:1976] <<
> avd_saImmOiAdminOperationResult *
> Nov 14 11:02:27.744119 osafamfd [486:sg.cc:1724] << set_fsm_state
>
> The traces map to the code:
>>         for (const auto& si : list_of_si) {
>>             if (si->invocation != 0) {
>>                 TRACE("Admin operation finishes on
>> SI:'%s'",si->name.c_str());
>>                 avd_saImmOiAdminOperationResult(avd_cb->immOiHandle,
>>                         si->invocation, SA_AIS_OK);
>> *                si->invocation = 0;*
>>             }
>>         }
>
> So, the invocation here is reset.
>
> Best regards,
> Long Nguyen.
>
> On 11/17/2016 4:15 PM, praveen malviya wrote:
>> Hi Long,
>>
>> As per ticket, issue occurred during si-swap.
>> Please update the ticket with brief analysis so that seeing the ticket
>> one can have idea where the problem occurred.
>> I guess si-swap initiated before AMFD could update to IMM.
>> If that is the case, we should reject the admin operation from
>> si_admin_op_cb() if invocationId is still set in Si.
>>
>> Thanks,
>> Praveen
>>
>> On 16-Nov-16 4:19 PM, Long HB Nguyen wrote:
>>>  osaf/services/saf/amf/amfd/imm.cc        |  22 ++++++++++++++++++++++
>>>  osaf/services/saf/amf/amfd/include/imm.h |   2 ++
>>>  osaf/services/saf/amf/amfd/role.cc       |   5 +++++
>>>  3 files changed, 29 insertions(+), 0 deletions(-)
>>>
>>>
>>> diff --git a/osaf/services/saf/amf/amfd/imm.cc
>>> b/osaf/services/saf/amf/amfd/imm.cc
>>> --- a/osaf/services/saf/amf/amfd/imm.cc
>>> +++ b/osaf/services/saf/amf/amfd/imm.cc
>>> @@ -423,6 +423,28 @@ AvdJobDequeueResultT Fifo::execute(const
>>>      return ret;
>>>  }
>>>
>>> +AvdJobDequeueResultT Fifo::executeAdminResp(const AVD_CL_CB *cb)
>>> +{
>>> +    Job *ajob;
>>> +    AvdJobDequeueResultT ret = JOB_EXECUTED;
>>> +
>>> +    TRACE_ENTER();
>>> +
>>> +    while ((ajob = peek()) != nullptr) {
>>> +        if (dynamic_cast<ImmAdminResponse *>(ajob) != nullptr) {
>>> +            ret = ajob->exec(cb);
>>> +        } else {
>>> +            ajob = dequeue();
>>> +            delete ajob;
>>> +            ret = JOB_EXECUTED;
>>> +        }
>>> +    }
>>> +
>>> +    TRACE_LEAVE2("%d", ret);
>>> +
>>> +    return ret;
>>> +}
>>> +
>>>  //
>>>  void Fifo::empty()
>>>  {
>>> diff --git a/osaf/services/saf/amf/amfd/include/imm.h
>>> b/osaf/services/saf/amf/amfd/include/imm.h
>>> --- a/osaf/services/saf/amf/amfd/include/imm.h
>>> +++ b/osaf/services/saf/amf/amfd/include/imm.h
>>> @@ -146,6 +146,8 @@ public:
>>>
>>>          static AvdJobDequeueResultT execute(const AVD_CL_CB *cb);
>>>
>>> +        static AvdJobDequeueResultT executeAdminResp(const AVD_CL_CB
>>> *cb);
>>> +
>>>          static void empty();
>>>
>>>      static uint32_t size();
>>> diff --git a/osaf/services/saf/amf/amfd/role.cc
>>> b/osaf/services/saf/amf/amfd/role.cc
>>> --- a/osaf/services/saf/amf/amfd/role.cc
>>> +++ b/osaf/services/saf/amf/amfd/role.cc
>>> @@ -766,6 +766,11 @@ void avd_mds_qsd_role_evh(AVD_CL_CB *cb,
>>>      }
>>>
>>>  try_again:
>>> +    /* Execute admin op jobs before calling saImmOiImplementerClear
>>> to avoid
>>> +     * SA_AIS_ERR_TIMEOUT
>>> +     */
>>> +    Fifo::executeAdminResp(cb);
>>> +
>>>      /* Take mutex here to sync with imm reinit thread.*/
>>>      osaf_mutex_lock_ordie(&imm_reinit_mutex);
>>>      /* Give up IMM OI implementer role */
>>>
>>
>

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to