X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt-sessiond%2Fmain.c;h=68481146eb1badc3bc30c2810448434013ac50a5;hb=712ea556b2774ad12e9a9a83c3d04eda46e3f9a0;hp=722402311586b7f7341e229939608d448ddfe502;hpb=c363b55d55c5b1d0f43d7d8c2938b5bea842d6eb;p=lttng-tools.git diff --git a/ltt-sessiond/main.c b/ltt-sessiond/main.c index 722402311..68481146e 100644 --- a/ltt-sessiond/main.c +++ b/ltt-sessiond/main.c @@ -45,6 +45,7 @@ #include "ust-ctl.h" #include "session.h" #include "traceable-app.h" +#include "lttng-kconsumerd.h" /* * TODO: @@ -55,7 +56,7 @@ /* Const values */ const char default_home_dir[] = DEFAULT_HOME_DIR; -const char default_tracing_group[] = DEFAULT_TRACING_GROUP; +const char default_tracing_group[] = LTTNG_DEFAULT_TRACING_GROUP; const char default_ust_sock_dir[] = DEFAULT_UST_SOCK_DIR; const char default_global_apps_pipe[] = DEFAULT_GLOBAL_APPS_PIPE; @@ -331,6 +332,7 @@ static void *thread_manage_kconsumerd(void *data) goto error; } + /* Getting status code from kconsumerd */ ret = lttcomm_recv_unix_sock(sock, &code, sizeof(enum lttcomm_return_code)); if (ret <= 0) { goto error; @@ -339,6 +341,7 @@ static void *thread_manage_kconsumerd(void *data) if (code == KCONSUMERD_COMMAND_SOCK_READY) { kconsumerd_cmd_sock = lttcomm_connect_unix_sock(kconsumerd_cmd_unix_sock_path); if (kconsumerd_cmd_sock < 0) { + sem_post(&kconsumerd_sem); perror("kconsumerd connect"); goto error; } @@ -351,20 +354,15 @@ static void *thread_manage_kconsumerd(void *data) goto error; } - while (1) { - /* Wait for any kconsumerd error */ - ret = lttcomm_recv_unix_sock(sock, &code, sizeof(enum lttcomm_return_code)); - if (ret <= 0) { - ERR("Kconsumerd closed the command socket"); - goto error; - } - - ERR("Kconsumerd return code : %s", lttcomm_get_readable_code(-code)); - if (code != KCONSUMERD_POLL_HUP) { - goto error; - } + /* Wait for any kconsumerd error */ + ret = lttcomm_recv_unix_sock(sock, &code, sizeof(enum lttcomm_return_code)); + if (ret <= 0) { + ERR("Kconsumerd closed the command socket"); + goto error; } + ERR("Kconsumerd return code : %s", lttcomm_get_readable_code(-code)); + error: kconsumerd_pid = 0; DBG("Kconsumerd thread dying"); @@ -460,9 +458,15 @@ static int spawn_kconsumerd_thread(void) /* Wait for the kconsumerd thread to be ready */ sem_wait(&kconsumerd_sem); + if (kconsumerd_pid == 0) { + ERR("Kconsumerd did not start"); + goto error; + } + return 0; error: + ret = LTTCOMM_KERN_CONSUMER_FAIL; return ret; } @@ -534,11 +538,9 @@ static int start_kconsumerd(void) DBG("Kconsumerd pid %d", ret); DBG("Spawning kconsumerd thread"); - ret = spawn_kconsumerd_thread(); if (ret < 0) { ERR("Fatal error spawning kconsumerd thread"); - ret = LTTCOMM_FATAL; goto error; } @@ -584,7 +586,7 @@ static int send_kconsumerd_fds(int sock, struct ltt_kernel_session *session) /* Setup header */ lkh.payload_size = nb_fd * sizeof(struct lttcomm_kconsumerd_msg); - lkh.cmd_type = LTTCOMM_ADD_STREAM; + lkh.cmd_type = ADD_STREAM; DBG("Sending kconsumerd header");