Fix flush buffer after wait quiescent
[lttng-tools.git] / lttng-sessiond / ust-app.c
index e8dc32733492f39d012b2a3a34fd542d14969471..6de177564a0c53b38af847b3453c72e740301cf1 100644 (file)
@@ -1944,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) {
@@ -1962,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:
This page took 0.02565 seconds and 4 git commands to generate.