Hi Gary, Ack from me. I was highlighting a scenario based on the commit log and ticket description when AMFND has not marked the led state Green because it did not receive the message. In that case that "if block" will not be executed in NEW_ACTIVE event. But I think this is possible only when both AMFND and AMFD are coming up in "SC abscence" feature enabled system and active SC restarts. There will not be any sync information on this AMFND.
Thanks, Praveen On 15-Nov-16 7:05 AM, Gary Lee wrote: > Hi Praveen > > If an amfd is available before MDS timer expires, we get > NCSMDS_NEW_ACTIVE. That is the part I am changing. > > The current code is: > > if (evt->info.mds.i_change == NCSMDS_NEW_ACTIVE && > cb->is_avd_down) { > if (cb->led_state == AVND_LED_STATE_GREEN) { > LOG_NO("Sending node up due to > NCSMDS_NEW_ACTIVE"); > > // node_up, sync sisu, compcsi info to > AVND for recovery > avnd_sync_sisu(cb); > avnd_sync_csicomp(cb); > avnd_send_node_up_msg(); > } > } > > The proposed code is: > > if(evt->info.mds.i_change == NCSMDS_NEW_ACTIVE && > cb->is_avd_down) { > if(cb->led_state == AVND_LED_STATE_GREEN) { > // node_up, sync sisu, compcsi info to > AVND for recovery > avnd_sync_sisu(cb); > avnd_sync_csicomp(cb); > } > LOG_NO("Sending node up due to NCSMDS_NEW_ACTIVE"); > avnd_send_node_up_msg(); > } > > The behaviour for recovering from headless is the same as before. > led_state will be green, so amfnd will send sisu / csicomp messages. > > The failover behaviour is also the same, as is_avd_down will be false, > so the block of the code never runs in the old or new code. > > I’m jmaking it also send node_up when led_state is red. > > The scenario I’m trying to fix occurred on SC-2 during cluster startup: > > - amfd on SC-1 starts > - amfnd on SC-2 receives NCSMDS_UP > - amfd on SC-1 amfd suddenly restarts (so quickly there is no failover) > - amfnd on SC-2 receives NCSMDS_NEW_ACTIVE, but because led_state is > red, it doesn’t send node_up and the startup sequence stops entirely. > > Thanks > Gary > >> On 14 Nov. 2016, at 10:25 pm, praveen malviya >> <praveen.malv...@oracle.com <mailto:praveen.malv...@oracle.com>> wrote: >> >> >> >> On 14-Nov-16 4:00 PM, Gary Lee wrote: >>> I just moved avnd_send_node_up_msg() outside the if block. The compsci >>> and susi messages are sent in the same conditions as before? >> But when that if condition will hit. After headless state when first >> controller comes up within MDS timer limit we Will get avd_up and we >> are sending only MDS_UP event (If condition is not hit). So now we >> will not get again node_up for same AVD? So how this AMFND will send >> sync information. >> >> Thanks, >> Praveen >>> >>> Quoting praveen malviya <praveen.malv...@oracle.com >>> <mailto:praveen.malv...@oracle.com>>: >>> >>>> But still when AMFND will send the sync information to AMFD with this >>>> patch? >>>> Those are generally the first messages and they are still in that if >>>> block. Am I missing something? >>>> >>>> Thanks, >>>> Praveen >>>> >>>> On 14-Nov-16 2:26 PM, Gary Lee wrote: >>>>> Hi Praveen >>>>> >>>>> I think it’s unlikely there is a set_leds in the queue. That would >>>>> have been sent from the ‘old’ amfd, before the ‘new’ amfd sends >>>>> node_up. So the set_leds would likely have been processed first. >>>>> >>>>> The patch is just making the behaviour the same as receiving NCSMDS_UP. >>>>> >>>>> Thanks >>>>> Gary >>>>> >>>>>> On 14 Nov. 2016, at 5:48 pm, praveen malviya >>>>>> <praveen.malv...@oracle.com <mailto:praveen.malv...@oracle.com>> >>>>>> wrote: >>>>>> >>>>>> Hi Gary, >>>>>> >>>>>> The reason for asking: patch is sending NODE UP event without >>>>>> sending sync information for COMPCSI and SUSI. AVD_UP event for both >>>>>> adest and vdest comes almost simultaneously. So this function will >>>>>> not get triggerd and this AMFND will remain never be able to sync >>>>>> its compcsi and susi. >>>>>> >>>>>> Thanks, >>>>>> Praveen >>>>>> >>>>>> On 14-Nov-16 11:44 AM, Gary Lee wrote: >>>>>>> Hi Praveen >>>>>>> >>>>>>> I don’t have traces - both that is a possibility. If it is in the >>>>>>> mailbox, amfnd will still be stuck unless an amfd switchover occurs. >>>>>>> >>>>>>> Thanks >>>>>>> Gary >>>>>>> >>>>>>>> On 14 Nov. 2016, at 4:35 pm, praveen malviya >>>>>>>> <praveen.malv...@oracle.com <mailto:praveen.malv...@oracle.com>> >>>>>>>> wrote: >>>>>>>> >>>>>>>> Hi Gary, >>>>>>>> >>>>>>>> One quick question: Is this that case when AMFD restarted before >>>>>>>> sending set_led to AMFND? I just want to know Is there any >>>>>>>> possibility that set_led message is present in AMFND mail box. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Praveen >>>>>>>> >>>>>>>> On 11-Nov-16 11:16 AM, Gary Lee wrote: >>>>>>>>> osaf/services/saf/amf/amfnd/di.cc <http://di.cc> | 5 ++--- >>>>>>>>> 1 files changed, 2 insertions(+), 3 deletions(-) >>>>>>>>> >>>>>>>>> >>>>>>>>> if amfd restarts before set_leds is received by amfnd, then >>>>>>>>> amfnd will not send node_up. amfnd should send node_up >>>>>>>>> even if led state is not green. >>>>>>>>> >>>>>>>>> diff --git a/osaf/services/saf/amf/amfnd/di.cc <http://di.cc> >>>>>>>>> b/osaf/services/saf/amf/amfnd/di.cc <http://di.cc> >>>>>>>>> --- a/osaf/services/saf/amf/amfnd/di.cc <http://di.cc> >>>>>>>>> +++ b/osaf/services/saf/amf/amfnd/di.cc <http://di.cc> >>>>>>>>> @@ -562,13 +562,12 @@ uint32_t avnd_evt_mds_avd_up_evh(AVND_CB >>>>>>>>> */ >>>>>>>>> if (evt->info.mds.i_change == NCSMDS_NEW_ACTIVE && >>>>>>>>> cb->is_avd_down) { >>>>>>>>> if (cb->led_state == AVND_LED_STATE_GREEN) { >>>>>>>>> - LOG_NO("Sending node up due to >>>>>>>>> NCSMDS_NEW_ACTIVE"); >>>>>>>>> - >>>>>>>>> // node_up, sync sisu, compcsi info to AVND for >>>>>>>>> recovery >>>>>>>>> avnd_sync_sisu(cb); >>>>>>>>> avnd_sync_csicomp(cb); >>>>>>>>> - avnd_send_node_up_msg(); >>>>>>>>> } >>>>>>>>> + LOG_NO("Sending node up due to NCSMDS_NEW_ACTIVE"); >>>>>>>>> + avnd_send_node_up_msg(); >>>>>>>>> } >>>>>>>>> cb->is_avd_down = false; >>>>>>>>> } >>>>>>>>> >>>>>>> >>>>> >>> > ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel