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 <dgoulet@efficios.com>
/*
* Enable consumer command.
*/
/*
* 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;
{
int ret = CMD_SUCCESS;
int run_enable_cmd = 1;
memset(&dom, 0, sizeof(dom));
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;
- }
handle = lttng_create_handle(session_name, &dom);
if (handle == NULL) {
handle = lttng_create_handle(session_name, &dom);
if (handle == NULL) {
- 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) */
}
/* Handling URLs (-U opt) */
/* opt_enable will tell us to run or not the enable_consumer cmd. */
run_enable_cmd = 0;
/* 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) */
}
/* Setting up control URL (-C or/and -D opt) */
run_enable_cmd = 0;
if (opt_ctrl_url) {
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) {
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);
session_name = opt_session_name;
}
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) {
end:
if (opt_session_name == NULL) {