Fix: update apps on untrack only when session is active
authorJonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Mon, 18 Nov 2019 20:12:20 +0000 (15:12 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 22 Nov 2019 21:12:06 +0000 (16:12 -0500)
This mimics what is done on the track side.

Fixes #1210

Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/trace-ust.c

index 486b53d30c117b1be901b2d1ce7b134ca310cd5b..a6c0c04ad864075d64cbf0c8dba6b66e96ce21cc 100644 (file)
@@ -922,6 +922,7 @@ end:
 int trace_ust_untrack_pid(struct ltt_ust_session *session, int pid)
 {
        int retval = LTTNG_OK;
 int trace_ust_untrack_pid(struct ltt_ust_session *session, int pid)
 {
        int retval = LTTNG_OK;
+       bool should_update_apps = false;
 
        if (pid == -1) {
                /* Create empty tracker, replace old tracker. */
 
        if (pid == -1) {
                /* Create empty tracker, replace old tracker. */
@@ -938,7 +939,7 @@ int trace_ust_untrack_pid(struct ltt_ust_session *session, int pid)
                fini_pid_tracker(&tmp_tracker);
 
                /* Remove session from all applications */
                fini_pid_tracker(&tmp_tracker);
 
                /* Remove session from all applications */
-               ust_app_global_update_all(session);
+               should_update_apps = true;
        } else {
                int ret;
                struct ust_app *app;
        } else {
                int ret;
                struct ust_app *app;
@@ -957,9 +958,12 @@ int trace_ust_untrack_pid(struct ltt_ust_session *session, int pid)
                /* Remove session from application. */
                app = ust_app_find_by_pid(pid);
                if (app) {
                /* Remove session from application. */
                app = ust_app_find_by_pid(pid);
                if (app) {
-                       ust_app_global_update(session, app);
+                       should_update_apps = true;
                }
        }
                }
        }
+       if (should_update_apps && session->active) {
+               ust_app_global_update_all(session);
+       }
 end:
        return retval;
 }
 end:
        return retval;
 }
This page took 0.033683 seconds and 4 git commands to generate.