Ack, code review only.

Thanks,
Praveen

On 18-Nov-16 8:58 AM, Vu Minh Nguyen wrote:
> Thanks Praveen. I will remove ` SA_AIS_ERR_UNAVAILABLE` error code checking.
>
> Regards, Vu
>
>> -----Original Message-----
>> From: praveen malviya [mailto:praveen.malv...@oracle.com]
>> Sent: Thursday, November 17, 2016 4:07 PM
>> To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>;
>> minh.c...@dektech.com.au
>> Cc: opensaf-devel@lists.sourceforge.net
>> Subject: Re: [PATCH 1 of 1] ntf: handle error code TRY_AGAIN of
>> saClmInitialize() [#2191]
>>
>> Hi Vu,
>>
>> Please find query inline [Praveen].
>>
>> Thanks,
>> Praveen
>>
>> On 17-Nov-16 11:58 AM, Vu Minh Nguyen wrote:
>>>  osaf/services/saf/ntfsv/ntfs/ntfs_clm.c |  14 +++++++++++++-
>>>  1 files changed, 13 insertions(+), 1 deletions(-)
>>>
>>>
>>> NTF did not deal with TRY_AGAIN error code of `saClmInitialize()`,
>>> NTF would exit, and cause node reboot if getting TRY_AGAIN.
>>>
>>> The patch adds a while loop to do retry when getting TRY_AGAIN.
>>>
>>> diff --git a/osaf/services/saf/ntfsv/ntfs/ntfs_clm.c
>> b/osaf/services/saf/ntfsv/ntfs/ntfs_clm.c
>>> --- a/osaf/services/saf/ntfsv/ntfs/ntfs_clm.c
>>> +++ b/osaf/services/saf/ntfsv/ntfs/ntfs_clm.c
>>> @@ -101,13 +101,25 @@ void *ntfs_clm_init_thread(void *cb)
>>>  {
>>>     ntfs_cb_t *_ntfs_cb = (ntfs_cb_t *) cb;
>>>     SaAisErrorT rc = SA_AIS_OK;
>>> +   uint32_t msecs_waited = 0;
>>> +   const uint32_t max_waiting_time_10s = 10 * 1000; /* 10 secs */
>>> +
>>>     TRACE_ENTER();
>>> +
>>>     rc = saClmInitialize_4(&_ntfs_cb->clm_hdl, &clm_callbacks,
>> &clmVersion);
>>> +   while (((rc == SA_AIS_ERR_TRY_AGAIN) || (rc ==
>> SA_AIS_ERR_TIMEOUT) ||
>>> +           (rc == SA_AIS_ERR_UNAVAILABLE)) &&
>> [Praveen] Based on discussion on ticket #1828 related to CLM
>> initialization, I remember this API does not return ERR_UNAVAILABLE even
>> on a CLM locked node also. This provision is to enable application on
>> CLM locked node to perform tracking of CLM status of nodes.
>>
>> But I think even CLM Agent can return this code when CLMS server has not
>> got node related information from CLM agent and in that case CLMS will
>> return ERR_UNAVAILABLE. If it is not so, then I think we are not
>> required to handle rc == SA_AIS_ERR_UNAVAILABLE.
>>
>> Thanks,
>> Praveen
>>> +          (msecs_waited < max_waiting_time_10s)) {
>>> +           usleep(100*1000);
>>> +           msecs_waited += 100;
>>> +           rc = saClmInitialize_4(&_ntfs_cb->clm_hdl, &clm_callbacks,
>> &clmVersion);
>>> +   }
>>>     if (rc != SA_AIS_OK) {
>>>             LOG_ER("saClmInitialize failed with error: %d", rc);
>>>             TRACE_LEAVE();
>>> -                exit(EXIT_FAILURE);
>>> +           exit(EXIT_FAILURE);
>>>     }
>>> +
>>>     rc = saClmSelectionObjectGet(_ntfs_cb->clm_hdl, &ntfs_cb-
>>> clmSelectionObject);
>>>     if (rc != SA_AIS_OK) {
>>>             LOG_ER("saClmSelectionObjectGet failed with error: %d",
>> rc);
>>>
>

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

Reply via email to