X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-app.c;h=030358241f663548265493bd2459c00977be0013;hb=df0f840ba686e3fe670c9906fd46330fff65da07;hp=bb012b5d84fc0e8b92ace19dde174c2dcb633fef;hpb=915d047cc8abd8a6e1255dba3e877236f8e8be51;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index bb012b5d8..030358241 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -1935,6 +1935,9 @@ int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app) goto skip_setup; } + /* 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) { goto error_rcu_unlock; @@ -1991,7 +1994,6 @@ int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app) if (ret < 0) { goto error_rcu_unlock; } - ua_sess->started = 1; skip_setup: /* This start the UST tracing */ @@ -2037,10 +2039,12 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } - /* Not started, continuing. */ - if (ua_sess->started == 0) { - goto end; - } + /* + * 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. + */ + assert(ua_sess->started == 1); /* This inhibits UST tracing */ ret = ustctl_stop_session(app->key.sock, ua_sess->handle); @@ -2071,8 +2075,6 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) ret); } - ua_sess->started = 0; - end: rcu_read_unlock(); return 0;