Fix: push metadata on stop for per-UID buffers
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 19 Jul 2013 12:59:12 +0000 (08:59 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 19 Jul 2013 12:59:12 +0000 (08:59 -0400)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
src/bin/lttng-sessiond/ust-app.c

index 830b5eafeeb3328737f66cb75c7f7ef9526fb2ae..7e263a7636f9188f492131a0824b2b4b127f4a89 100644 (file)
@@ -3962,7 +3962,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:
        {
        switch (usess->buffer_type) {
        case LTTNG_BUFFER_PER_UID:
        {
@@ -3970,6 +3970,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) {
 
                /* 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;
 
                        struct buffer_reg_channel *reg_chan;
                        struct consumer_socket *socket;
 
@@ -3990,7 +3991,14 @@ int ust_app_stop_trace_all(struct ltt_ust_session *usess)
                                 */
                                (void) consumer_flush_channel(socket, reg_chan->consumer_key);
                        }
                                 */
                                (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:
                break;
        }
        case LTTNG_BUFFER_PER_PID:
This page took 0.029515 seconds and 4 git commands to generate.