Hi Vu Ack (review)
On 21/12/16, 1:26 pm, "Vu Minh Nguyen" <[email protected]> wrote: Hi Gary, Any comment from you? Thanks. Regards, Vu > -----Original Message----- > From: minh chau [mailto:[email protected]] > Sent: Wednesday, December 21, 2016 5:29 AM > To: Vu Minh Nguyen <[email protected]>; > [email protected]; [email protected]; > [email protected] > Cc: [email protected] > Subject: Re: [PATCH 1 of 1] ntfd: fix circular dependency with osafntfimcnd > [#2219] > > ack > thanks, > Minh > > On 20/12/16 16:50, Vu Minh Nguyen wrote: > > osaf/services/saf/ntfsv/ntfimcnd/ntfimcn_main.c | 47 +++++--------------- > ---- > > 1 files changed, 11 insertions(+), 36 deletions(-) > > > > > > Refer to the #2219 ticket for more info on the problem. > > > > Fix the problem by exiting the osafntfimcnd process right away > > when getting SIGTERM signal. > > By this way, notifications about IMM attribute change status > > may be lost but this possibility has been mentioned in PR doc. > > > > Once active osafntfimcnd instance comes up, it will inform to users > > about the possiblity of ntf msg lost in the form of notification. > > > > diff --git a/osaf/services/saf/ntfsv/ntfimcnd/ntfimcn_main.c > b/osaf/services/saf/ntfsv/ntfimcnd/ntfimcn_main.c > > --- a/osaf/services/saf/ntfsv/ntfimcnd/ntfimcn_main.c > > +++ b/osaf/services/saf/ntfsv/ntfimcnd/ntfimcn_main.c > > @@ -40,11 +40,9 @@ > > > > enum { > > FD_IMM = 0, > > - FD_TERM, > > SIZE_FDS > > } NTFIMCN_FDS; > > > > -static NCS_SEL_OBJ term_sel_obj; /* Selection object for TERM signal > events */ > > > > /* > > * Global parameters > > @@ -55,14 +53,11 @@ static struct pollfd fds[SIZE_FDS]; > > static nfds_t nfds = SIZE_FDS; > > static unsigned int category_mask=0; > > > > -/** > > - * Clear special applier name and exit > > - * > > - * @param status > > - */ > > void imcn_exit(int status) > > { > > - ntfimcn_special_applier_clear(); > > + // No need to clear OI Applier name > > + // as IMM will do that if the owning > > + // process no longer exist. > > _Exit(status); > > } > > > > @@ -95,16 +90,7 @@ static void sigterm_handler(int sig) > > { > > (void) sig; > > signal(SIGTERM, SIG_IGN); > > - ncs_sel_obj_ind(&term_sel_obj); > > -} > > - > > -/** > > - * TERM event handler > > - */ > > -static void handle_sigterm_event(void) > > -{ > > - LOG_NO("exiting on signal %d", SIGTERM); > > - imcn_exit(EXIT_SUCCESS); > > + _Exit(EXIT_SUCCESS); > > } > > > > /* > > @@ -116,6 +102,12 @@ int main(int argc, char** argv) > > const char* trace_label = "osafntfimcnd"; > > SaAisErrorT ais_error = SA_AIS_OK; > > > > + // To make sure the SIGTERM is not lost during init phrase > > + if (signal(SIGTERM, sigterm_handler) == SIG_ERR) { > > + LOG_ER("signal TERM failed: %s", strerror(errno)); > > + _Exit(EXIT_FAILURE); > > + } > > + > > /* > > * Activate Log Trace > > */ > > @@ -131,7 +123,7 @@ int main(int argc, char** argv) > > syslog(LOG_ERR, "osafntfimcnd logtrace_init FAILED"); > > /* We allow to execute anyway. */ > > } > > - > > + > > /* > > * Initiate HA state > > */ > > @@ -166,24 +158,11 @@ int main(int argc, char** argv) > > imcn_exit(EXIT_FAILURE); > > } > > > > - /* Termination signal with handler */ > > - if (ncs_sel_obj_create(&term_sel_obj) != NCSCC_RC_SUCCESS) { > > - LOG_ER("ncs_sel_obj_create failed"); > > - _Exit(EXIT_FAILURE); > > - } > > - > > - if (signal(SIGTERM, sigterm_handler) == SIG_ERR) { > > - LOG_ER("signal TERM failed: %s", strerror(errno)); > > - _Exit(EXIT_FAILURE); > > - } > > - > > /* > > * Initiate polling > > */ > > fds[FD_IMM].fd = ntfimcn_cb.immSelectionObject; > > fds[FD_IMM].events = POLLIN; > > - fds[FD_TERM].fd = term_sel_obj.rmv_obj; > > - fds[FD_TERM].events = POLLIN; > > > > LOG_NO("Started"); > > > > @@ -197,10 +176,6 @@ int main(int argc, char** argv) > > imcn_exit(EXIT_FAILURE); > > } > > > > - if (fds[FD_TERM].revents & POLLIN) { > > - handle_sigterm_event(); > > - } > > - > > if (fds[FD_IMM].revents & POLLIN) { > > ais_error = > saImmOiDispatch(ntfimcn_cb.immOiHandle, SA_DISPATCH_ALL); > > if (ais_error != SA_AIS_OK) { > > ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/intel _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
