From: Mathieu Desnoyers Date: Wed, 24 Feb 2016 00:41:40 +0000 (-0500) Subject: Fix: per-pid ust buffers flush race with application unregister X-Git-Tag: v2.8.0-rc1~151 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=9db24cffc667e0833e8c82e687e3f910b1a1e54e;p=lttng-tools.git Fix: per-pid ust buffers flush race with application unregister 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 --- 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");