mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-08-05 09:40:38 +00:00
exec_dump_fn support as SIGUSR2 handler to easy to debug
(Logical change 1.91) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@327 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
018d786945
commit
3a05293f91
@ -243,6 +243,10 @@ static int amf_confchg_fn (
|
||||
struct sockaddr_in *left_list, int left_list_entries,
|
||||
struct sockaddr_in *joined_list, int joined_list_entries);
|
||||
|
||||
/***
|
||||
static void amf_dump (void);
|
||||
***/
|
||||
|
||||
static int amf_exit_fn (struct conn_info *conn_info);
|
||||
|
||||
static int amf_exec_init_fn (void);
|
||||
@ -398,7 +402,8 @@ struct service_handler amf_service_handler = {
|
||||
.confchg_fn = amf_confchg_fn,
|
||||
.libais_init_fn = message_handler_req_amf_init,
|
||||
.libais_exit_fn = amf_exit_fn,
|
||||
.exec_init_fn = amf_exec_init_fn
|
||||
.exec_init_fn = amf_exec_init_fn,
|
||||
.exec_dump_fn = amf_dump
|
||||
};
|
||||
|
||||
static void grow_amf_track_table (struct conn_info *conn_info, int growby)
|
||||
@ -2578,7 +2583,6 @@ static void amf_dump_comp (struct saAmfComponent *component ,void *data)
|
||||
|
||||
void amf_dump ( )
|
||||
{
|
||||
|
||||
enumerate_components (amf_dump_comp, NULL);
|
||||
fflush (stdout);
|
||||
|
||||
|
@ -169,7 +169,8 @@ struct service_handler ckpt_service_handler = {
|
||||
.confchg_fn = 0, /* ckpt service handler is not distributed */
|
||||
.libais_init_fn = message_handler_req_lib_ckpt_init,
|
||||
.libais_exit_fn = 0,
|
||||
.exec_init_fn = 0
|
||||
.exec_init_fn = 0,
|
||||
.exec_dump_fn = 0
|
||||
};
|
||||
|
||||
struct libais_handler ckpt_checkpoint_libais_handlers[] =
|
||||
@ -289,7 +290,8 @@ struct service_handler ckpt_checkpoint_service_handler = {
|
||||
.confchg_fn = ckpt_checkpoint_confchg_fn,
|
||||
.libais_init_fn = message_handler_req_lib_ckpt_checkpoint_init,
|
||||
.libais_exit_fn = ckpt_checkpoint_exit_fn,
|
||||
.exec_init_fn = ckpt_checkpoint_exec_init_fn
|
||||
.exec_init_fn = ckpt_checkpoint_exec_init_fn,
|
||||
.exec_dump_fn = 0
|
||||
};
|
||||
|
||||
struct libais_handler ckpt_sectioniterator_libais_handlers[] =
|
||||
@ -325,7 +327,8 @@ struct service_handler ckpt_sectioniterator_service_handler = {
|
||||
.confchg_fn = 0, /* Section Iterators are not distributed */
|
||||
.libais_init_fn = message_handler_req_lib_ckpt_sectioniterator_init,
|
||||
.libais_exit_fn = ckptSectionIteratorApiFinalize,
|
||||
.exec_init_fn = 0
|
||||
.exec_init_fn = 0,
|
||||
.exec_dump_fn = 0
|
||||
};
|
||||
|
||||
static struct saCkptCheckpoint *findCheckpoint (SaNameT *name)
|
||||
|
@ -169,7 +169,8 @@ struct service_handler clm_service_handler = {
|
||||
.confchg_fn = clm_confchg_fn,
|
||||
.libais_init_fn = message_handler_req_clm_init,
|
||||
.libais_exit_fn = clm_exit_fn,
|
||||
.exec_init_fn = clm_exec_init_fn
|
||||
.exec_init_fn = clm_exec_init_fn,
|
||||
.exec_dump_fn = 0
|
||||
};
|
||||
|
||||
static int clm_exec_init_fn (void)
|
||||
|
@ -134,7 +134,8 @@ struct service_handler evs_service_handler = {
|
||||
.confchg_fn = evs_confchg_fn,
|
||||
.libais_init_fn = message_handler_req_evs_init,
|
||||
.libais_exit_fn = evs_exit_fn,
|
||||
.exec_init_fn = evs_executive_initialize
|
||||
.exec_init_fn = evs_executive_initialize,
|
||||
.exec_dump_fn = 0
|
||||
};
|
||||
|
||||
static int evs_executive_initialize (void)
|
||||
|
@ -152,7 +152,8 @@ struct service_handler evt_service_handler = {
|
||||
.confchg_fn = evt_conf_change,
|
||||
.libais_init_fn = evt_initialize,
|
||||
.libais_exit_fn = evt_finalize,
|
||||
.exec_init_fn = evt_exec_init
|
||||
.exec_init_fn = evt_exec_init,
|
||||
.exec_dump_fn = 0
|
||||
};
|
||||
|
||||
static gmi_recovery_plug_handle evt_recovery_plug_handle;
|
||||
|
@ -58,6 +58,7 @@ struct service_handler {
|
||||
int (*libais_init_fn) (struct conn_info *conn_info, void *msg);
|
||||
int (*libais_exit_fn) (struct conn_info *conn_info);
|
||||
int (*exec_init_fn) (void);
|
||||
void (*exec_dump_fn) (void);
|
||||
};
|
||||
|
||||
#endif /* HANDLERS_H_DEFINED */
|
||||
|
11
exec/main.c
11
exec/main.c
@ -145,7 +145,13 @@ static inline struct conn_info *conn_info_create (int fd) {
|
||||
|
||||
static void sigusr2_handler (int num)
|
||||
{
|
||||
amf_dump ();
|
||||
int i;
|
||||
|
||||
for (i = 0; i < AIS_SERVICE_HANDLERS_COUNT; i++) {
|
||||
if (ais_service_handlers[i]->exec_dump_fn) {
|
||||
ais_service_handlers[i]->exec_dump_fn ();
|
||||
}
|
||||
}
|
||||
|
||||
signal (SIGUSR2 ,sigusr2_handler);
|
||||
return;
|
||||
@ -781,6 +787,9 @@ static void aisexec_service_handlers_init (void)
|
||||
*/
|
||||
for (i = 0; i < AIS_SERVICE_HANDLERS_COUNT; i++) {
|
||||
if (ais_service_handlers[i]->exec_init_fn) {
|
||||
if (!ais_service_handlers[i]->exec_init_fn) {
|
||||
continue;
|
||||
}
|
||||
ais_service_handlers[i]->exec_init_fn ();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user