X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrace-ust.c;h=2dcc7c25d95f737c2da19f88e6406b6c23d591c7;hp=4001ec87bdd8359f6224a1915e84c62f9c22486a;hb=f3f0db50cf3fbc658bb4ffaf79a7fb694ab05e1d;hpb=53a80697a772bc2e260e3dff006f910be6709f04 diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index 4001ec87b..2dcc7c25d 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -111,7 +111,7 @@ struct ltt_ust_session *trace_ust_create_session(char *path, lus->consumer = consumer_create_output(CONSUMER_DST_LOCAL); if (lus->consumer == NULL) { - goto error; + goto error_consumer; } /* @@ -123,24 +123,30 @@ struct ltt_ust_session *trace_ust_create_session(char *path, lus->tmp_consumer = NULL; /* Use the default consumer output which is the tracing session path. */ - ret = snprintf(lus->consumer->dst.trace_path, PATH_MAX, "%s/ust", path); - if (ret < 0) { - PERROR("snprintf UST consumer trace path"); - goto error; - } + if (path && strlen(path) > 0) { + ret = snprintf(lus->consumer->dst.trace_path, PATH_MAX, + "%s" DEFAULT_UST_TRACE_DIR, path); + if (ret < 0) { + PERROR("snprintf UST consumer trace path"); + goto error_path; + } - /* Set session path */ - ret = snprintf(lus->pathname, PATH_MAX, "%s/ust", path); - if (ret < 0) { - PERROR("snprintf kernel traces path"); - goto error_free_session; + /* Set session path */ + ret = snprintf(lus->pathname, PATH_MAX, "%s" DEFAULT_UST_TRACE_DIR, + path); + if (ret < 0) { + PERROR("snprintf kernel traces path"); + goto error_path; + } } DBG2("UST trace session create successful"); return lus; -error_free_session: +error_path: + consumer_destroy_output(lus->consumer); +error_consumer: lttng_ht_destroy(lus->domain_global.channels); lttng_ht_destroy(lus->domain_exec); lttng_ht_destroy(lus->domain_pid); @@ -305,7 +311,7 @@ struct ltt_ust_metadata *trace_ust_create_metadata(char *path) /* Set default attributes */ lum->attr.overwrite = DEFAULT_CHANNEL_OVERWRITE; - lum->attr.subbuf_size = DEFAULT_METADATA_SUBBUF_SIZE; + lum->attr.subbuf_size = default_get_metadata_subbuf_size(); lum->attr.num_subbuf = DEFAULT_METADATA_SUBBUF_NUM; lum->attr.switch_timer_interval = DEFAULT_CHANNEL_SWITCH_TIMER; lum->attr.read_timer_interval = DEFAULT_CHANNEL_READ_TIMER; @@ -574,6 +580,9 @@ void trace_ust_destroy_session(struct ltt_ust_session *session) destroy_domain_pid(session->domain_pid); destroy_domain_exec(session->domain_exec); + consumer_destroy_output(session->consumer); + consumer_destroy_output(session->tmp_consumer); + free(session); rcu_read_unlock();