From: Mathieu Desnoyers Date: Fri, 19 Jul 2013 12:59:12 +0000 (-0400) Subject: Fix: push metadata on stop for per-UID buffers X-Git-Tag: v2.2.3~8 X-Git-Url: https://git.liburcu.org/?a=commitdiff_plain;h=5e674ece72afdd5cf259b0417dac233e06f2eac8;hp=e631d844aa489cb5cf93efc754c44d7ae699b2f2;p=lttng-tools.git Fix: push metadata on stop for per-UID buffers Signed-off-by: Mathieu Desnoyers --- diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 4dcaf4ffb..e5e45b43e 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -3960,7 +3960,7 @@ int ust_app_stop_trace_all(struct ltt_ust_session *usess) } } - /* Flush buffers */ + /* Flush buffers and push metadata (for UID buffers). */ switch (usess->buffer_type) { case LTTNG_BUFFER_PER_UID: { @@ -3968,6 +3968,7 @@ int ust_app_stop_trace_all(struct ltt_ust_session *usess) /* Flush all per UID buffers associated to that session. */ cds_list_for_each_entry(reg, &usess->buffer_reg_uid_list, lnode) { + struct ust_registry_session *ust_session_reg; struct buffer_reg_channel *reg_chan; struct consumer_socket *socket; @@ -3988,7 +3989,14 @@ int ust_app_stop_trace_all(struct ltt_ust_session *usess) */ (void) consumer_flush_channel(socket, reg_chan->consumer_key); } + + ust_session_reg = reg->registry->reg.ust; + if (!ust_session_reg->metadata_closed) { + /* Push metadata. */ + (void) push_metadata(ust_session_reg, usess->consumer); + } } + break; } case LTTNG_BUFFER_PER_PID: