This ticket address the issue in IMM agent init.
IMM agent alway got the SA_AIS_ERR_LIBRARY event
if IMM has started successfully.
This fix is destroy lib_req when leap startup fail
---
src/base/ncs_main_pub.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/base/ncs_main_pub.c b/src/base/ncs_main_pub.c
index d85dc6b47..f71ff36bb 100644
--- a/src/base/ncs_main_pub.c
+++ b/src/base/ncs_main_pub.c
@@ -159,9 +159,8 @@ unsigned int ncs_leap_startup(void)
}
if (sprr_lib_req(&lib_create) != NCSCC_RC_SUCCESS) {
- TRACE_4("\nERROR: SPRR lib_req failed \n");
- osaf_mutex_unlock_ordie(&s_agent_startup_mutex);
- return NCSCC_RC_FAILURE;
+ TRACE_4("\nERROR: SPRR lib_req NCS_LIB_REQ_CREATE failed \n");
+ goto lib_req_fail;
}
/* Get & Update system specific arguments */
@@ -180,6 +179,18 @@ unsigned int ncs_leap_startup(void)
gl_ncs_main_pub_cb.lib_hdl = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);
return NCSCC_RC_SUCCESS;
+
+lib_req_fail:
+ leap_env_destroy();
+ NCS_LIB_REQ_INFO lib_destroy;
+
+ memset(&lib_destroy, 0, sizeof(lib_destroy));
+ lib_destroy.i_op = NCS_LIB_REQ_DESTROY;
+ lib_destroy.info.destroy.dummy = 0;
+ if (sprr_lib_req(&lib_destroy) != NCSCC_RC_SUCCESS)
+ TRACE_4("\nERROR: SPRR lib_req NCS_LIB_REQ_DESTROY failed\n");
+ osaf_mutex_unlock_ordie(&s_agent_startup_mutex);
+ return NCSCC_RC_FAILURE;
}
/***************************************************************************\
--
2.25.1
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel