On 10/30/2013 02:08 PM, Nagendra Kumar wrote: > Not sure, so I did add check for presence state.
I can understand why we do SA_TRACK_CURRENT at cluster start (to collect current node IDs) but the same does not make sense later on. So ack but I think you should fix your changelog. The one liner is too long and then there is nothing more... Thanks, hans > > Thanks > -Nagu > > -----Original Message----- > From: Hans Feldt [mailto:[email protected]] > Sent: 30 October 2013 17:46 > To: Nagendra Kumar; [email protected]; Praveen Malviya > Cc: [email protected] > Subject: Re: [PATCH 1 of 1] amfd: Donot send instantiate message from Amfd to > Amfnd for instantiated SUs [#608] > > Some questions about the amfd CLM design which is not very clear. > > Standby amfd at failover starts CLM tracking (deep down in > avd_sg_2n_susi_sucss_sg_reln). It starts tracking with > SA_TRACK_CURRENT. The reason for this seems to be to add the AMF node in a > tree based on nodeid coming from the CLM > node. This causes the CLM callback which in this case sends the pres state > messages. > > Could you explain the use case for calling clm_node_join_complete in both > (JOINED & NO_CHANGE) cases? > > If it is unnecessary in the NO_CHANGE case an alternative solution could be: > > diff --git a/osaf/services/saf/amf/amfd/clm.cc > b/osaf/services/saf/amf/amfd/clm.cc > --- a/osaf/services/saf/amf/amfd/clm.cc > +++ b/osaf/services/saf/amf/amfd/clm.cc > @@ -343,7 +343,8 @@ static void clm_track_cb(const SaClmClus > else { > > m_AVSV_SEND_CKPT_UPDT_ASYNC_UPDT(avd_cb, node, AVSV_CKPT_AVD_NODE_CONFIG); > } > - if (node->node_state == > AVD_AVND_STATE_PRESENT) { > + if ((notifItem->clusterChange == > SA_CLM_NODE_JOINED) && > + (node->node_state == > AVD_AVND_STATE_PRESENT)) { > TRACE("Node already up and > configured"); > /* now try to instantiate > all the SUs that need to be */ > > clm_node_join_complete(node); > > > > Thanks, > Hans > > On 10/30/2013 12:07 PM, [email protected] wrote: >> osaf/services/saf/amf/amfd/clm.cc | 3 ++- >> 1 files changed, 2 insertions(+), 1 deletions(-) >> >> >> diff --git a/osaf/services/saf/amf/amfd/clm.cc >> b/osaf/services/saf/amf/amfd/clm.cc >> --- a/osaf/services/saf/amf/amfd/clm.cc >> +++ b/osaf/services/saf/amf/amfd/clm.cc >> @@ -51,7 +51,8 @@ static void clm_node_join_complete(AVD_A >> (node->node_state == >> AVD_AVND_STATE_NCS_INIT)) { >> if ((su->sg_of_su->saAmfSGAdminState != >> SA_AMF_ADMIN_LOCKED_INSTANTIATION) && >> (su->saAmfSUOperState == >> SA_AMF_OPERATIONAL_ENABLED) && >> - (su->saAmfSUAdminState != >> SA_AMF_ADMIN_LOCKED_INSTANTIATION)) { >> + (su->saAmfSUAdminState != >> SA_AMF_ADMIN_LOCKED_INSTANTIATION) && >> + (su->saAmfSUPresenceState == >> SA_AMF_PRESENCE_UNINSTANTIATED)) { >> /* When the SU will instantiate then >> prescence state change message will come >> and so store the callback parameters >> to send response later on. */ >> if >> (su->sg_of_su->saAmfSGNumPrefInserviceSUs > >> >> > > ------------------------------------------------------------------------------ Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
