Ack, code review only/Thanks HansN -----Original Message----- From: nagendr...@oracle.com [mailto:nagendr...@oracle.com] Sent: den 27 april 2015 11:19 To: Hans Nordebäck; praveen.malv...@oracle.com; mathi.naic...@oracle.com Cc: opensaf-devel@lists.sourceforge.net Subject: [PATCH 1 of 1] amfd: respond to nid only after initialization is completed [#1334]
osaf/services/saf/amf/amfd/chkop.cc | 4 ++++ osaf/services/saf/amf/amfd/main.cc | 6 +++++- 2 files changed, 9 insertions(+), 1 deletions(-) Act Amfd initialization is said to be completed when it completes its initialization with imm. Apart from initializing with imm, Standby Amfd also need to get run time data from Act Amfd using cold sync. So, Standby Amfd initialization is said to be completed when it completes its initialization with imm and it completes its cold sync with Act Amfd. In the present code, Standby is sending response to nid without cold sync complete. So, code has been added to send nid response only when Amfd completes its initialization. diff --git a/osaf/services/saf/amf/amfd/chkop.cc b/osaf/services/saf/amf/amfd/chkop.cc --- a/osaf/services/saf/amf/amfd/chkop.cc +++ b/osaf/services/saf/amf/amfd/chkop.cc @@ -40,6 +40,7 @@ #include "logtrace.h" #include "amfd.h" +#include <nid_api.h> static uint32_t avsv_mbcsv_cb(NCS_MBCSV_CB_ARG *arg); static uint32_t avsv_mbcsv_process_enc_cb(AVD_CL_CB *cb, NCS_MBCSV_CB_ARG *arg); @@ -444,6 +445,9 @@ ignore_msg: ** when in a more critical state */ saflog(LOG_NOTICE, amfSvcUsrName, "Cold sync complete at %x", cb->node_id_avd); cb->stby_sync_state = AVD_STBY_IN_SYNC; + /* It is important for Standby Amfd to inform nid after it is + ready for Act controller failover and accept Act role. */ + (void) nid_notify(const_cast<char*>("AMFD"), NCSCC_RC_SUCCESS, +NULL); } cb->synced_reo_type = arg->info.decode.i_reo_type; diff --git a/osaf/services/saf/amf/amfd/main.cc b/osaf/services/saf/amf/amfd/main.cc --- a/osaf/services/saf/amf/amfd/main.cc +++ b/osaf/services/saf/amf/amfd/main.cc @@ -831,7 +831,11 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); } - (void) nid_notify(const_cast<char*>("AMFD"), NCSCC_RC_SUCCESS, NULL); + /* Act Amfd need to inform nid after it has initialized itself, while + Stanby Amfd need to inform nid after it has done cold sync. */ + if (avd_cb->avail_state_avd == SA_AMF_HA_ACTIVE) { + (void) nid_notify(const_cast<char*>("AMFD"), NCSCC_RC_SUCCESS, NULL); + } main_loop(); ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel