Hi Nagu, So no comment and ack from me.
Thanks Minh > Hi Minh, > > Thanks for your review time. > > I had tried something like you suggested, my observation was that I was > getting into some other problem(don't remember exactly), so I thought this > could be safest. > > Thanks > -Nagu >> -----Original Message----- >> From: minh chau [mailto:minh.c...@dektech.com.au] >> Sent: 27 June 2016 07:42 >> To: Nagendra Kumar; hans.nordeb...@ericsson.com; Praveen Malviya; >> gary....@dektech.com.au >> Cc: opensaf-devel@lists.sourceforge.net >> Subject: Re: [PATCH 1 of 1] amfd: avoid resetting alarm for duplicate >> node >> ups [#1893] >> >> Hi Nagu, >> >> Patch looks good. >> Can we think an alternative that condition of calling >> avd_process_state_info_queue() by checking node_state as >> AVD_AVND_STATE_ABSENT, so that we don't have to introduce new static >> var? >> >> Thanks, >> Minh >> >> On 23/06/16 20:45, nagendr...@oracle.com wrote: >> > osaf/services/saf/amf/amfd/ndfsm.cc | 12 +++++++++++- >> > 1 files changed, 11 insertions(+), 1 deletions(-) >> > >> > >> > When Amfd receives duplicate node up messages from Act amfnd, then it >> > tries to reset alarm_sent for SI. >> > This happens when cluster is recovering from headless state. >> > And if that happens then when those SIs gets assigned, then alarms are >> > not reset. >> > This patch fixes this issue. It avoids resetting alarm_sent when >> > duplicate node ups are received. >> > >> > diff --git a/osaf/services/saf/amf/amfd/ndfsm.cc >> > b/osaf/services/saf/amf/amfd/ndfsm.cc >> > --- a/osaf/services/saf/amf/amfd/ndfsm.cc >> > +++ b/osaf/services/saf/amf/amfd/ndfsm.cc >> > @@ -51,11 +51,13 @@ void avd_process_state_info_queue(AVD_CL >> > uint32_t i; >> > const auto queue_size = cb->evt_queue.size(); >> > AVD_EVT_QUEUE *queue_evt = nullptr; >> > + /* Counter for Act Amfnd node up message.*/ >> > + static int act_amfnd_node_up_count = 0; >> > >> > TRACE_ENTER(); >> > >> > TRACE("queue_size before processing: %lu", (unsigned long) >> > queue_size); >> > - >> > + act_amfnd_node_up_count ++; >> > // recover assignments from state info >> > for(i=0 ; i<queue_size ; i++) { >> > queue_evt = cb->evt_queue.front(); @@ -91,6 +93,13 @@ >> void >> > avd_process_state_info_queue(AVD_CL >> > } >> > } >> > >> > + /* Alarms shouldn't be reset in next subsequent node up message. >> > + Because in the previous node up messages queue_size might have >> > + been zero. In the subsequent node up messages, this might cause >> > + alarm_sent to get reset and this may cause unassigned alarm to >> > + exist even those SIs are assigned after some time.*/ >> > + if (act_amfnd_node_up_count > 1) goto done; >> > + >> > // Once active amfd looks up the state info from queue, that means >> node sync >> > // finishes. Therefore, if the queue is empty, this active amfd is >> coming >> > // from a cluster restart, the alarm state should be reset. >> > @@ -115,6 +124,7 @@ void avd_process_state_info_queue(AVD_CL >> > } >> > } >> > } >> > +done: >> > TRACE("queue_size after processing: %lu", (unsigned long) cb- >> >evt_queue.size()); >> > TRACE_LEAVE(); >> > } >> > >> > ------------------------------------------------------------------------------ Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San Francisco, CA to explore cutting-edge tech and listen to tech luminaries present their vision of the future. This family event has something for everyone, including kids. Get more information and register today. http://sdm.link/attshape _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel