Ack. Thanks, Vu
> -----Original Message----- > From: srinivas [mailto:[email protected]] > Sent: Wednesday, March 28, 2018 4:44 PM > To: [email protected]; [email protected]; > [email protected] > Cc: [email protected]; srinivas > <[email protected]> > Subject: [PATCH 1/1] ntf: fix to avoid core dump of osafntfimcnd processs > [#2806] > > --- > src/ntf/ntfimcnd/ntfimcn_imm.c | 48 ++++++++++++----------------------------- > - > 1 file changed, 14 insertions(+), 34 deletions(-) > > diff --git a/src/ntf/ntfimcnd/ntfimcn_imm.c > b/src/ntf/ntfimcnd/ntfimcn_imm.c > index 1358d9f..172491d 100644 > --- a/src/ntf/ntfimcnd/ntfimcn_imm.c > +++ b/src/ntf/ntfimcnd/ntfimcn_imm.c > @@ -175,23 +175,16 @@ static char *get_rdn_attr_name(const > SaImmClassNameT className) > s_get_rdn_attr_name.saved_className = > realloc(s_get_rdn_attr_name.saved_className, strlen(className) > + 1); > if (s_get_rdn_attr_name.saved_className == NULL) { > - LOG_ER("Failed to realloc memory"); > - goto error; > + LOG_ER("%s: Failed to realloc memory",__FUNCTION__); > + osaf_abort(0); > } > memcpy(s_get_rdn_attr_name.saved_className, className, > strlen(className) + 1); > > - /* Get an IMM OM Handle */ > - SaImmHandleT immOmHandle = 0; > - if (initializeImmOmHandle(&immOmHandle) == false) { > - LOG_ER("getImmOmHandle() Fail"); > - goto error; > - } > - > /* Get class description */ > rc = getClassDescription(className, &attrDescr); > if (rc != SA_AIS_OK) { > - LOG_ER("getClassDescription failed %s", saf_error(rc)); > + LOG_NO("getClassDescription failed %s", saf_error(rc)); > goto error; > } > > @@ -202,8 +195,8 @@ static char *get_rdn_attr_name(const > SaImmClassNameT className) > realloc(s_get_rdn_attr_name.attrName, > strlen(attrDescr[i]->attrName) + 1); > if (s_get_rdn_attr_name.attrName == NULL) { > - LOG_ER("Failed to realloc memory"); > - goto error; > + LOG_ER("%s: Failed to realloc > memory",__FUNCTION__); > + osaf_abort(0); > } > memcpy(s_get_rdn_attr_name.attrName, > attrDescr[i]->attrName, > @@ -213,7 +206,7 @@ static char *get_rdn_attr_name(const > SaImmClassNameT className) > } > > /* Free memory allocated for attribute descriptions */ > - rc = saImmOmClassDescriptionMemoryFree_2(immOmHandle, > + rc = > saImmOmClassDescriptionMemoryFree_2(ntfimcn_cb.immOmHandle, > attrDescr); > if (rc != SA_AIS_OK) { > LOG_NO("saImmOmClassDescriptionMemoryFree_2() Fail %s", > @@ -221,9 +214,6 @@ static char *get_rdn_attr_name(const > SaImmClassNameT className) > goto error; > } > > - /* Release the OM Handle */ > - finalizeImmOmHandle(immOmHandle); > - > done: > TRACE_LEAVE(); > return s_get_rdn_attr_name.attrName; > @@ -231,20 +221,9 @@ error: > /* NOTE: Resources are allocated by this function > * saImmOmClassDescriptionMemoryFree_2() must be called > before > * returning from this function. Not done here because of > - * osafassert() > + * imcn_exit() > */ > - LOG_ER("%s Failed", __FUNCTION__); > - if ( rc == SA_AIS_ERR_NOT_EXIST ) { > - LOG_NO("osafntfimcnd restarting due to error %s.", > - saf_error(rc)); > - _exit(EXIT_FAILURE); > - } > - else > - { > - // core dump will be generated for all other errors which will > be used > - // for further analysis of the error. > - osafassert(0); > - } > + imcn_exit(EXIT_FAILURE); > return 0; /* Dummy */ > } > > @@ -936,7 +915,7 @@ done: > static bool initializeImmOmHandle(SaImmHandleT* immOmHandle) { > struct timespec timeout_ts; > struct timespec delay_ts; > - SaAisErrorT ais_rc; > + SaAisErrorT ais_rc = SA_AIS_OK; > bool internal_rc = true; > SaVersionT imm_version = kImmVersion; > > @@ -946,7 +925,8 @@ static bool initializeImmOmHandle(SaImmHandleT* > immOmHandle) { > while (osaf_is_timeout(&timeout_ts) == false) { > ais_rc = saImmOmInitialize(immOmHandle, > &omCallbacks, &imm_version); > - if (ais_rc != SA_AIS_ERR_TRY_AGAIN) { > + if (ais_rc != SA_AIS_ERR_TRY_AGAIN && > + ais_rc != SA_AIS_ERR_TIMEOUT) { > break; > } > osaf_nanosleep(&delay_ts); > @@ -954,8 +934,8 @@ static bool initializeImmOmHandle(SaImmHandleT* > immOmHandle) { > } > > if (ais_rc != SA_AIS_OK) { > - LOG_NO("%s saImmOmInitialize failed %s", __FUNCTION__, > - saf_error(ais_rc)); > + LOG_NO("%s saImmOmInitialize failed %s", > + __FUNCTION__, saf_error(ais_rc)); > internal_rc = false; > } > return internal_rc; > @@ -978,7 +958,7 @@ static void finalizeImmOmHandle(SaImmHandleT > immOmHandle) { > } > > if (ais_rc != SA_AIS_OK) { > - LOG_NO("%s saImmOmInitialize failed %s", __FUNCTION__, > + LOG_NO("%s saImmOmFinalize failed %s", __FUNCTION__, > saf_error(ais_rc)); > } > } > -- > 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
