Hi Minh,

 Will consider if issue happens with NTF in future.

B.R/Thang

-----Original Message-----
From: Minh Hon Chau <minh.c...@dektech.com.au> 
Sent: Wednesday, July 8, 2020 11:03 AM
To: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au>; Thuan Tran 
<thuan.t...@dektech.com.au>; Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>
Cc: opensaf-devel@lists.sourceforge.net
Subject: Re: [PATCH 1/1] lgs: not invoke saAmfComponentErrorReport() [#3197]

Hi Thang,

ack from me. Maybe we can just add another commit for NTF as Thuan suggested?

Thanks

Minh

On 8/7/20 1:17 pm, thang.d.nguyen wrote:
> 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);

_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to