Ack, with a trivial comment. Thanks, Mathi.
-----Original Message----- From: Lennart Lund [mailto:lennart.l...@ericsson.com] Sent: Monday, March 10, 2014 8:37 PM To: Mathivanan Naickan Palanivelu Cc: opensaf-devel@lists.sourceforge.net Subject: [PATCH 1 of 1] logsv: Fix handling of Om initialize / finalize when creating app stream [#804] osaf/services/saf/logsv/lgs/lgs_imm.c | 40 ++++++++++++++++++++++++++++------- 1 files changed, 32 insertions(+), 8 deletions(-) - Make sure that finializing the Om interface is never done without a previous initialize. - Do not abort if Om finalize fail diff --git a/osaf/services/saf/logsv/lgs/lgs_imm.c b/osaf/services/saf/logsv/lgs/lgs_imm.c --- a/osaf/services/saf/logsv/lgs/lgs_imm.c +++ b/osaf/services/saf/logsv/lgs/lgs_imm.c @@ -1617,9 +1617,15 @@ static SaAisErrorT stream_create_and_con SaImmAttrValuesT_2 **attributes; int i = 0; log_stream_t *stream; + + int asetting = immutilWrapperProfile.errorsAreFatal; [Mathi] You probably meant 'asserting'. + SaAisErrorT om_rc = SA_AIS_OK; TRACE_ENTER2("(%s)", dn); + (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); + (void)immutil_saImmOmAccessorInitialize(omHandle, &accessorHandle); + strncpy((char *)objectName.value, dn, SA_MAX_NAME_LENGTH); objectName.length = strlen((char *)objectName.value); @@ -1633,9 +1639,6 @@ static SaAisErrorT stream_create_and_con /* Happens to be the same, ugly! FIX */ stream->streamType = stream_id; - (void)immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); - (void)immutil_saImmOmAccessorInitialize(omHandle, &accessorHandle); - /* Get all attributes of the object */ if (immutil_saImmOmAccessorGet_2(accessorHandle, &objectName, NULL, &attributes) != SA_AIS_OK) { LOG_ER("Configuration for %s not found", objectName.value); @@ -1699,8 +1702,17 @@ static SaAisErrorT stream_create_and_con stream->logFileFormat = strdup(log_file_format[stream->streamType]); done: - (void)immutil_saImmOmAccessorFinalize(accessorHandle); - (void)immutil_saImmOmFinalize(omHandle); + /* Do not abort if error when finalizing */ + immutilWrapperProfile.errorsAreFatal = 0; /* Disable immutil abort */ + om_rc = immutil_saImmOmAccessorFinalize(accessorHandle); + if (om_rc != SA_AIS_OK) { + LOG_NO("%s immutil_saImmOmAccessorFinalize() Fail %d",__FUNCTION__, om_rc); + } + om_rc = immutil_saImmOmFinalize(omHandle); + if (om_rc != SA_AIS_OK) { + LOG_NO("%s immutil_saImmOmFinalize() Fail %d",__FUNCTION__, om_rc); + } + immutilWrapperProfile.errorsAreFatal = asetting; /* Enable again */ TRACE_LEAVE(); return rc; @@ -1729,9 +1741,12 @@ static SaAisErrorT read_logsv_config_obj int param_cnt = 0; int n; + int asetting = immutilWrapperProfile.errorsAreFatal; + SaAisErrorT om_rc = SA_AIS_OK; + TRACE_ENTER2("(%s)", dn); - /* NOTE: immutil init osaf_assert if error */ + /* NOTE: immutil init will osaf_assert if error */ (void) immutil_saImmOmInitialize(&omHandle, NULL, &immVersion); (void) immutil_saImmOmAccessorInitialize(omHandle, &accessorHandle); @@ -1816,8 +1831,17 @@ static SaAisErrorT read_logsv_config_obj } done: - (void) immutil_saImmOmAccessorFinalize(accessorHandle); - (void) immutil_saImmOmFinalize(omHandle); + /* Do not abort if error when finalizing */ + immutilWrapperProfile.errorsAreFatal = 0; /* Disable immutil abort */ + om_rc = immutil_saImmOmAccessorFinalize(accessorHandle); + if (om_rc != SA_AIS_OK) { + LOG_NO("%s immutil_saImmOmAccessorFinalize() Fail %d",__FUNCTION__, om_rc); + } + om_rc = immutil_saImmOmFinalize(omHandle); + if (om_rc != SA_AIS_OK) { + LOG_NO("%s immutil_saImmOmFinalize() Fail %d",__FUNCTION__, om_rc); + } + immutilWrapperProfile.errorsAreFatal = asetting; /* Enable again */ TRACE_LEAVE(); return rc; ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel