X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttng-sessiond%2Fust-app.c;h=6de177564a0c53b38af847b3453c72e740301cf1;hb=4fba72199030f1171956ad2ebf18ee7a8903eba6;hp=616a7ae2f50c04ebf1365bc20d218d3ec28b256e;hpb=6d3686dabf72d0b9403a2d65913dafd94171daff;p=lttng-tools.git diff --git a/lttng-sessiond/ust-app.c b/lttng-sessiond/ust-app.c index 616a7ae2f..6de177564 100644 --- a/lttng-sessiond/ust-app.c +++ b/lttng-sessiond/ust-app.c @@ -163,6 +163,9 @@ void delete_ust_app_session(int sock, struct ust_app_session *ua_sess) ret = hashtable_destroy(ua_sess->channels); assert(!ret); + if (ua_sess->handle != -1) { + ustctl_release_handle(sock, ua_sess->handle); + } free(ua_sess); } @@ -1941,13 +1944,17 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) goto error_rcu_unlock; } - /* Flush all buffers before stopping */ - ret = ustctl_sock_flush_buffer(app->key.sock, ua_sess->metadata->obj); + /* This inhibits UST tracing */ + ret = ustctl_stop_session(app->key.sock, ua_sess->handle); if (ret < 0) { - ERR("UST app PID %d metadata flush failed", app->key.pid); - ERR("Ended with ret %d", ret); + ERR("Error stopping tracing for app pid: %d", app->key.pid); + goto error_rcu_unlock; } + /* Quiescent wait after stopping trace */ + ustctl_wait_quiescent(app->key.sock); + + /* Flushing buffers */ cds_lfht_for_each_entry(ua_sess->channels, &iter, ua_chan, node) { ret = ustctl_sock_flush_buffer(app->key.sock, ua_chan->obj); if (ret < 0) { @@ -1959,18 +1966,15 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) } } - /* This inhibits UST tracing */ - ret = ustctl_stop_session(app->key.sock, ua_sess->handle); + /* Flush all buffers before stopping */ + ret = ustctl_sock_flush_buffer(app->key.sock, ua_sess->metadata->obj); if (ret < 0) { - ERR("Error stopping tracing for app pid: %d", app->key.pid); - goto error_rcu_unlock; + ERR("UST app PID %d metadata flush failed", app->key.pid); + ERR("Ended with ret %d", ret); } rcu_read_unlock(); - /* Quiescent wait after stopping trace */ - ustctl_wait_quiescent(app->key.sock); - return 0; error_rcu_unlock: