Ack, reviewed & tested Regards, Ravi
-----Original Message----- From: Minh Chau [mailto:[email protected]] Sent: Tuesday, December 19, 2017 7:39 AM To: [email protected]; [email protected]; [email protected] Cc: [email protected]; Minh Chau <[email protected]> Subject: [PATCH 1/1] amfd: Avoid IMM reinitialization in OpenSAF components termination phase [#2737] --- src/amf/amfd/imm.cc | 13 +++++++++++++ src/amf/amfd/ndfsm.cc | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/amf/amfd/imm.cc b/src/amf/amfd/imm.cc index bf7e3d3..aef988f 100644 --- a/src/amf/amfd/imm.cc +++ b/src/amf/amfd/imm.cc @@ -2185,12 +2185,25 @@ 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 + 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 ca2e3f6..8501bad 100644 --- a/src/amf/amfd/ndfsm.cc +++ b/src/amf/amfd/ndfsm.cc @@ -589,7 +589,7 @@ void avd_node_down_evh(AVD_CL_CB *cb, AVD_EVT *evt) LOG_ER("%s:%u: %u", __FILE__, __LINE__, node->node_info.nodeId); } } - + avd_node_state_set(node, AVD_AVND_STATE_SHUTTING_DOWN); done: avsv_dnd_msg_free(n2d_msg); evt->info.avnd_msg = nullptr; -- 2.7.4 ------------------------------------------------------------------------------ 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
