}
}
- /* Indicate that the session has been started once */
- ua_sess->started = 1;
-
ret = create_ust_app_metadata(ua_sess, usess->pathname, app);
if (ret < 0) {
ret = LTTNG_ERR_UST_META_FAIL;
goto error_rcu_unlock;
}
+ /* Indicate that the session has been started once */
+ ua_sess->started = 1;
+
health_code_update(&health_thread_cmd);
/* Quiescent wait after starting trace */
/*
* 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);