Hi Thang, ACK from me.
Best Regards, ThuanTr -----Original Message----- From: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au> Sent: Thursday, October 22, 2020 2:34 PM To: Thuan Tran <thuan.t...@dektech.com.au>; Minh Hon Chau <minh.c...@dektech.com.au> Cc: opensaf-devel@lists.sourceforge.net; Thang Duc Nguyen <thang.d.ngu...@dektech.com.au> Subject: [PATCH 1/1] amf: fix coredump in start up [#3186] During node start up, it loses connection with Active SC. At that time CLM join cluster and AMFND tries to convert CLM node to AMF node. But IMMND at that time is down (e.i, unregister then register with MDS). The IMM OM API return asap and cause the coredump. Need to retry in this case for more robustness. --- src/amf/amfnd/clm.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/amf/amfnd/clm.cc b/src/amf/amfnd/clm.cc index 317674f10..27b6e171d 100644 --- a/src/amf/amfnd/clm.cc +++ b/src/amf/amfnd/clm.cc @@ -138,7 +138,7 @@ done: TRACE_LEAVE(); } -static void clm_to_amf_node(void) { +static SaAisErrorT clm_to_amf_node(void) { SaAisErrorT error; SaImmSearchHandleT searchHandle; SaNameT amfdn, clmdn; @@ -157,8 +157,7 @@ static void clm_to_amf_node(void) { error = saImmOmInitialize_cond(&immOmHandle, nullptr, &immVersion); if (SA_AIS_OK != error) { - LOG_WA("saImmOmInitialize failed. Use previous value of nodeName."); - osafassert(avnd_cb->amf_nodeName.empty() == false); + LOG_WA("saImmOmInitialize failed: %u", error); goto done1; } @@ -192,6 +191,7 @@ done: immutil_saImmOmFinalize(immOmHandle); done1: TRACE_LEAVE2("%u", error); + return error; } /**************************************************************************** @@ -279,7 +279,15 @@ static void clm_track_cb( memcpy(&(avnd_cb->node_info), &(notifItem->clusterNode), sizeof(SaClmClusterNodeT_4)); /*get the amf node from clm node name */ - if (avnd_cb->amf_nodeName.empty()) clm_to_amf_node(); + if (avnd_cb->amf_nodeName.empty()) { + if (clm_to_amf_node() == SA_AIS_ERR_TRY_AGAIN) { + // Take one more try + if (clm_to_amf_node() != SA_AIS_OK) { + LOG_ER("clm_to_amf_node() failed"); + exit(EXIT_FAILURE); + } + } + } avnd_send_node_up_msg(); avnd_cb->first_time_up = false; } else { -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel