From 9db24cffc667e0833e8c82e687e3f910b1a1e54e Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Tue, 23 Feb 2016 19:41:40 -0500 Subject: [PATCH] Fix: per-pid ust buffers flush race with application unregister MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit If an application exits between the moment we create the ust app session (shadow copy) and the moment we send channels to the application, sending channels may fail. If the application unregisters between the the end of ust app session creation and the destroy that follows (ust app session lock is released in between), we may see is_sent being false. This assert was initially there in the early days of lttng-tools when the application was responsible for doing the flush. Now that the flush has been moved to the consumer daemon, we don't need this assertion anymore. Signed-off-by: Mathieu Desnoyers Signed-off-by: Jérémie Galarneau --- src/bin/lttng-sessiond/ust-app.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 8c45a89a5..160a15640 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -4469,7 +4469,6 @@ int ust_app_flush_app_session(struct ust_app *app, cds_lfht_for_each_entry(ua_sess->channels->ht, &iter.iter, ua_chan, node.node) { health_code_update(); - assert(ua_chan->is_sent); ret = consumer_flush_channel(socket, ua_chan->key); if (ret) { ERR("Error flushing consumer channel"); -- 2.34.1