Hi Minh, Started reviewing, will get back to you by tomorrow
Regards, Ravi -----Original Message----- From: Minh Hon Chau [mailto:[email protected]] Sent: Thursday, January 04, 2018 4:27 PM To: [email protected]; Ravi Sekhar Reddy Konda <[email protected]>; [email protected] Cc: [email protected] Subject: Re: [PATCH 1/1] amfd: Avoid IMM reinitialization in OpenSAF components termination phase V2 [#2737] Hi Ravi, Have you had time to have look at this patch? Thanks, Minh On 29/12/17 19:31, Minh Chau wrote: > This commit reverts commit of d231ba43, which depends on node id to > set the node state as SHUTTING_DOWN. In node shutting down phase, the > node id can be removed from amfd since CLMD are termitated first. > This commit also introduces a new IMM state to determine whether IMM > service to be initialized. > --- > src/amf/amfd/cb.h | 1 + > src/amf/amfd/imm.cc | 13 +++---------- > src/amf/amfd/ndfsm.cc | 3 ++- > 3 files changed, 6 insertions(+), 11 deletions(-) > > diff --git a/src/amf/amfd/cb.h b/src/amf/amfd/cb.h index > c7d7ddd..60bb554 100644 > --- a/src/amf/amfd/cb.h > +++ b/src/amf/amfd/cb.h > @@ -63,6 +63,7 @@ typedef enum { > AVD_IMM_INIT_BASE = 1, > AVD_IMM_INIT_ONGOING = 2, > AVD_IMM_INIT_DONE = 3, > + AVD_IMM_TERMINATING = 4, > } AVD_IMM_INIT_STATUS; > /* > * Sync state of the Standby. > diff --git a/src/amf/amfd/imm.cc b/src/amf/amfd/imm.cc index > aef988f..47c0e5a 100644 > --- a/src/amf/amfd/imm.cc > +++ b/src/amf/amfd/imm.cc > @@ -2185,25 +2185,18 @@ void avd_imm_reinit_bg(void) { > pthread_t thread; > pthread_attr_t attr; > int rc = 0; > - AVD_AVND *node = nullptr; > > TRACE_ENTER(); > if (avd_cb->avd_imm_status == AVD_IMM_INIT_ONGOING) { > TRACE("Already IMM init is going in another thread"); > return; > } > - node = avd_node_find_nodeid(avd_cb->node_id_avd); > - if (node == nullptr) { > - LOG_ER("%s: invalid node ID (%x)", __FUNCTION__, > - avd_cb->node_id_avd); > - return; > - } > > - if (node->node_state == AVD_AVND_STATE_SHUTTING_DOWN) { > - // the node is shutting down phase, no need to reinitialize > - // IMM service > + if (avd_cb->avd_imm_status == AVD_IMM_TERMINATING) { > + TRACE("IMMND/IMMD are being terminated by AMFND"); > return; > } > + > avd_cb->avd_imm_status = AVD_IMM_INIT_ONGOING; > > LOG_NO("Re-initializing with IMM"); diff --git > a/src/amf/amfd/ndfsm.cc b/src/amf/amfd/ndfsm.cc index 8501bad..9d54df1 > 100644 > --- a/src/amf/amfd/ndfsm.cc > +++ b/src/amf/amfd/ndfsm.cc > @@ -587,9 +587,10 @@ void avd_node_down_evh(AVD_CL_CB *cb, AVD_EVT *evt) > n2d_msg->msg_info.n2d_node_down_info.msg_id) != NCSCC_RC_SUCCESS) { > /* log error that the director is not able to send the message */ > LOG_ER("%s:%u: %u", __FILE__, __LINE__, > node->node_info.nodeId); > + goto done; > } > + cb->avd_imm_status = AVD_IMM_TERMINATING; > } > - avd_node_state_set(node, AVD_AVND_STATE_SHUTTING_DOWN); > done: > avsv_dnd_msg_free(n2d_msg); > evt->info.avnd_msg = nullptr; ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
