X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng-sessiond%2Fust-app.c;h=73dc770c9391f3fac295d6e16b58fcfefa195ac9;hp=616a7ae2f50c04ebf1365bc20d218d3ec28b256e;hb=90d97d10e57ba8b2b10481837efb3d2402f41f88;hpb=6d3686dabf72d0b9403a2d65913dafd94171daff diff --git a/lttng-sessiond/ust-app.c b/lttng-sessiond/ust-app.c index 616a7ae2f..73dc770c9 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,6 @@ 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); - if (ret < 0) { - ERR("UST app PID %d metadata flush failed", app->key.pid); - ERR("Ended with ret %d", ret); - } - 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) { @@ -1971,6 +1967,13 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app) /* Quiescent wait after stopping trace */ ustctl_wait_quiescent(app->key.sock); + /* Flush all buffers before stopping */ + ret = ustctl_sock_flush_buffer(app->key.sock, ua_sess->metadata->obj); + if (ret < 0) { + ERR("UST app PID %d metadata flush failed", app->key.pid); + ERR("Ended with ret %d", ret); + } + return 0; error_rcu_unlock: