Should not invoke saAmfComponentErrorReport() to AMF before exit with failure. In case invoking, AMF don't know how to handle it. And logd does not start again. --- src/log/README | 8 -------- src/log/logd/lgs_mbcsv.cc | 16 ++++++++-------- src/log/logd/lgs_oi_admin.cc | 7 +++---- src/log/logd/lgs_util.cc | 4 +--- src/log/logd/lgs_util.h | 2 +- 5 files changed, 13 insertions(+), 24 deletions(-)
diff --git a/src/log/README b/src/log/README index 30d784033..d38bb708b 100644 --- a/src/log/README +++ b/src/log/README @@ -564,10 +564,6 @@ synchronization. The following is checkpointed and done on standby: =================================================== -If something goes wrong the general behavior is to restart the component using -saAmfComponentErrorReport(...,SA_AMF_COMPONENT_RESTART,...) in order to avoid -being out of sync (will trig a mbcs cold sync). - Checkpointed ------------- @@ -653,10 +649,6 @@ synchronization is trigged when standby detects a new active. Cold sync: - At start up / restart - When changing role - - When standby detects out of sync. - AMF is requested to perform a component restart (of standby) - "saAmfComponentErrorReport(...,SA_AMF_COMPONENT_RESTART,...)" - Synchronization of files and handling of log records ---------------------------------------------------- diff --git a/src/log/logd/lgs_mbcsv.cc b/src/log/logd/lgs_mbcsv.cc index 2d1271c1c..a38f7a5d1 100644 --- a/src/log/logd/lgs_mbcsv.cc +++ b/src/log/logd/lgs_mbcsv.cc @@ -1825,7 +1825,7 @@ static uint32_t ckpt_decode_cold_sync(lgs_cb_t *cb, NCS_MBCSV_CB_ARG *cbk_arg) { done: if (rc != NCSCC_RC_SUCCESS) { /* Do not allow standby to get out of sync */ - lgs_exit("Cold sync failed", SA_AMF_COMPONENT_RESTART); + lgs_exit("Cold sync failed"); } TRACE_LEAVE(); return rc; @@ -1934,7 +1934,7 @@ static uint32_t ckpt_proc_initialize_client(lgs_cb_t *cb, void *data) { if ((client = lgs_client_new(param->mds_dest, param->client_id, param->stream_list)) == NULL) { /* Do not allow standby to get out of sync */ - lgs_exit("Could not create new client", SA_AMF_COMPONENT_RESTART); + lgs_exit("Could not create new client"); } else { client->client_ver = param->client_ver; } @@ -1942,7 +1942,7 @@ static uint32_t ckpt_proc_initialize_client(lgs_cb_t *cb, void *data) { /* Client with ID already exist, check other attributes */ if (client->mds_dest != param->mds_dest) { /* Do not allow standby to get out of sync */ - lgs_exit("Client attributes differ", SA_AMF_COMPONENT_RESTART); + lgs_exit("Client attributes differ"); } } } else if (lgs_is_peer_v6()) { @@ -1957,7 +1957,7 @@ static uint32_t ckpt_proc_initialize_client(lgs_cb_t *cb, void *data) { if ((client = lgs_client_new(param->mds_dest, param->client_id, param->stream_list)) == NULL) { /* Do not allow standby to get out of sync */ - lgs_exit("Could not create new client", SA_AMF_COMPONENT_RESTART); + lgs_exit("Could not create new client"); } else { client->client_ver = param->client_ver; } @@ -1965,7 +1965,7 @@ static uint32_t ckpt_proc_initialize_client(lgs_cb_t *cb, void *data) { /* Client with ID already exist, check other attributes */ if (client->mds_dest != param->mds_dest) { /* Do not allow standby to get out of sync */ - lgs_exit("Client attributes differ", SA_AMF_COMPONENT_RESTART); + lgs_exit("Client attributes differ"); } } } else { @@ -1980,13 +1980,13 @@ static uint32_t ckpt_proc_initialize_client(lgs_cb_t *cb, void *data) { if ((client = lgs_client_new(param->mds_dest, param->client_id, param->stream_list)) == NULL) { /* Do not allow standby to get out of sync */ - lgs_exit("Could not create new client", SA_AMF_COMPONENT_RESTART); + lgs_exit("Could not create new client"); } } else { /* Client with ID already exist, check other attributes */ if (client->mds_dest != param->mds_dest) { /* Do not allow standby to get out of sync */ - lgs_exit("Client attributes differ", SA_AMF_COMPONENT_RESTART); + lgs_exit("Client attributes differ"); } } } @@ -2488,7 +2488,7 @@ uint32_t ckpt_proc_open_stream(lgs_cb_t *cb, void *data) { /* Do not allow standby to get out of sync */ LOG_ER("%s - Failed to add stream '%s' to client %u", __FUNCTION__, param->logStreamName, param->clientId); - lgs_exit("Could not add stream to client", SA_AMF_COMPONENT_RESTART); + lgs_exit("Could not add stream to client"); } /* Stream is opened on standby. Remove from rtobj list if exist */ diff --git a/src/log/logd/lgs_oi_admin.cc b/src/log/logd/lgs_oi_admin.cc index 8b899219e..afbf3c5eb 100644 --- a/src/log/logd/lgs_oi_admin.cc +++ b/src/log/logd/lgs_oi_admin.cc @@ -343,11 +343,11 @@ static void createLogServerOi() { (ais_rc != SA_AIS_OK)) { LOG_WA("%s: Fail, OI creation timeout", __FUNCTION__); // The legacy behavior is to exit log service in this case - lgs_exit("createLogServerOi() failed", SA_AMF_COMPONENT_RESTART); + lgs_exit("createLogServerOi() failed"); } else if (ais_rc != SA_AIS_OK) { LOG_WA("%s: Fail, OI creation error", __FUNCTION__); // The legacy behavior is to exit log service in this case - lgs_exit("createLogServerOi() failed", SA_AMF_COMPONENT_RESTART); + lgs_exit("createLogServerOi() failed"); } // Save OI handle and selection object @@ -452,8 +452,7 @@ void lgsOiStop() { if ((io_thread_stop_timeout.is_timeout() == true) && (oi_create_is_executing == true)) { // The OI creation thread is hanging. Recover by restarting log server - lgs_exit("lgsOiStop: Stopping OI create thread timeout", - SA_AMF_COMPONENT_RESTART); + lgs_exit("lgsOiStop: Stopping OI create thread timeout"); } // Note: oi_handle_ can be used unprotected here since we know that there is diff --git a/src/log/logd/lgs_util.cc b/src/log/logd/lgs_util.cc index 0538de70c..8ba100b1f 100644 --- a/src/log/logd/lgs_util.cc +++ b/src/log/logd/lgs_util.cc @@ -340,10 +340,8 @@ done: return rc; } -void lgs_exit(const char *msg, SaAmfRecommendedRecoveryT rec_rcvr) { +void lgs_exit(const char *msg) { LOG_ER("Exiting with message: %s", msg); - (void)saAmfComponentErrorReport(lgs_cb->amf_hdl, &lgs_cb->comp_name, 0, - rec_rcvr, SA_NTF_IDENTIFIER_UNUSED); exit(EXIT_FAILURE); } diff --git a/src/log/logd/lgs_util.h b/src/log/logd/lgs_util.h index 11a934fc4..b7c589a99 100644 --- a/src/log/logd/lgs_util.h +++ b/src/log/logd/lgs_util.h @@ -64,7 +64,7 @@ extern int lgs_file_rename_h(const std::string &root_path, const std::string &suffix, std::string *new_name); // extern uint32_t lgs_create_known_streams(lgs_cb_t *lgs_cb); /* Not used, no // code */ -extern void lgs_exit(const char *msg, SaAmfRecommendedRecoveryT rec_rcvr); +extern void lgs_exit(const char *msg); extern bool lgs_relative_path_check_ts(const std::string &path); extern int lgs_make_reldir_h(const std::string &path); extern int lgs_check_path_exists_h(const std::string &path_to_check); -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel