Fix: remove ua_sess->started assert on stop trace
authorDavid Goulet <dgoulet@efficios.com>
Tue, 18 Dec 2012 17:05:24 +0000 (12:05 -0500)
committerDavid Goulet <dgoulet@efficios.com>
Tue, 18 Dec 2012 17:05:24 +0000 (12:05 -0500)
It's totally possible that a start failed for a specific app but the
started flag is set for the global session making a stop trace possible
on a failed started session.

The assert is no longer valid since this code flow is possible.

Signed-off-by: David Goulet <dgoulet@efficios.com>
src/bin/lttng-sessiond/ust-app.c

index a6325746de77af8f7b602260d19b4efaa3e93d7c..e1d0c40e9cf03e34b935a171b1ca8d67686f55f5 100644 (file)
@@ -2393,10 +2393,13 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app)
 
        /*
         * If started = 0, it means that stop trace has been called for a session
-        * that was never started. This is a code flow error and should never
-        * happen.
+        * that was never started. It's possible since we can have a fail start
+        * from either the application manager thread or the command thread. Simply
+        * indicate that this is a stop error.
         */
-       assert(ua_sess->started == 1);
+       if (ua_sess->started == 1) {
+               goto error_rcu_unlock;
+       }
 
        health_code_update(&health_thread_cmd);
 
This page took 0.02894 seconds and 4 git commands to generate.