From: David Goulet Date: Wed, 28 Nov 2012 20:30:37 +0000 (-0500) Subject: Fix: enable-consumer for all domains missing dir X-Git-Tag: v2.1.0-rc9~4 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=81ffed9c49284d91e2fa05a88050e187d5b325ae;hp=37a86c61f06aa7eeba59374e4404f1b64c7c709c Fix: enable-consumer for all domains missing dir So the fix here is to enable consumer for all domains if no domain is given to the command line. This way, the session daemon can handle correctly the trace directory path for the right domain. Note that there is *no* switch for all domains (-a, --all) so omitting the domain (-u or -k) automatically creates a UST and kernel session, if none, and set the consumer for both of them. If one fails, the command is stopped. All in all, to be sure, use a domain with the command ;). Fixes #333 Signed-off-by: David Goulet --- diff --git a/src/bin/lttng/commands/enable_consumer.c b/src/bin/lttng/commands/enable_consumer.c index e59608950..6a635f424 100644 --- a/src/bin/lttng/commands/enable_consumer.c +++ b/src/bin/lttng/commands/enable_consumer.c @@ -126,7 +126,7 @@ static void usage(FILE *ofp) /* * Enable consumer command. */ -static int enable_consumer(char *session_name) +static int enable_consumer(char *session_name, int domain) { int ret = CMD_SUCCESS; int run_enable_cmd = 1; @@ -134,21 +134,7 @@ static int enable_consumer(char *session_name) memset(&dom, 0, sizeof(dom)); - /* Create lttng domain */ - if (opt_kernel) { - dom.type = LTTNG_DOMAIN_KERNEL; - } else if (opt_userspace) { - dom.type = LTTNG_DOMAIN_UST; - } else { - /* - * Set handle with domain set to 0. This means to the session daemon - * that the next action applies on the tracing session rather then the - * domain specific session. - * - * XXX: This '0' value should be a domain enum value. - */ - dom.type = 0; - } + dom.type = domain; handle = lttng_create_handle(session_name, &dom); if (handle == NULL) { @@ -164,7 +150,9 @@ static int enable_consumer(char *session_name) goto error; } - MSG("URL %s set for session %s.", opt_url_arg, session_name); + MSG("URL %s set for %s session %s.", opt_url_arg, + (domain == LTTNG_DOMAIN_KERNEL) ? "kernel" : "UST", + session_name); } /* Handling URLs (-U opt) */ @@ -178,7 +166,9 @@ static int enable_consumer(char *session_name) /* opt_enable will tell us to run or not the enable_consumer cmd. */ run_enable_cmd = 0; - MSG("URL %s set for session %s.", opt_url, session_name); + MSG("URL %s set for %s session %s.", opt_url, + (domain == LTTNG_DOMAIN_KERNEL) ? "kernel" : "UST", + session_name); } /* Setting up control URL (-C or/and -D opt) */ @@ -193,12 +183,15 @@ static int enable_consumer(char *session_name) run_enable_cmd = 0; if (opt_ctrl_url) { - MSG("Control URL %s set for session %s.", opt_ctrl_url, + MSG("Control URL %s set for %s session %s.", opt_ctrl_url, + (domain == LTTNG_DOMAIN_KERNEL) ? "kernel" : "UST", session_name); } if (opt_data_url) { - MSG("Data URL %s set for session %s.", opt_data_url, session_name); + MSG("Data URL %s set for %s session %s.", opt_data_url, + (domain == LTTNG_DOMAIN_KERNEL) ? "kernel" : "UST", + session_name); } } @@ -265,7 +258,19 @@ int cmd_enable_consumer(int argc, const char **argv) session_name = opt_session_name; } - ret = enable_consumer(session_name); + if (opt_kernel || (!opt_kernel && !opt_userspace)) { + ret = enable_consumer(session_name, LTTNG_DOMAIN_KERNEL); + if (ret < 0) { + goto end; + } + } + + if (opt_userspace || (!opt_kernel && !opt_userspace)) { + ret = enable_consumer(session_name, LTTNG_DOMAIN_UST); + if (ret < 0) { + goto end; + } + } end: if (opt_session_name == NULL) {