Message ID | 20191118201220.7525-1-jonathan.rajotte-julien@efficios.com |
---|---|
State | Accepted, archived |
Headers | show |
Series | [lttng-tools,v2] Fix: update apps on untrack only when session is active | expand |
Merged in master and stable-2.11. Thanks! J?r?mie On Mon, Nov 18, 2019 at 03:12:20PM -0500, Jonathan Rajotte wrote: > This mimics what is done on the track side. > > Fixes #1210 > > Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com> > --- > > Used wrong issue number. > > --- > src/bin/lttng-sessiond/trace-ust.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c > index 486b53d30..a6c0c04ad 100644 > --- a/src/bin/lttng-sessiond/trace-ust.c > +++ b/src/bin/lttng-sessiond/trace-ust.c > @@ -922,6 +922,7 @@ end: > 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. */ > @@ -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 */ > - ust_app_global_update_all(session); > + should_update_apps = true; > } 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) { > - 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; > } > -- > 2.17.1 >
diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c index 486b53d30..a6c0c04ad 100644 --- a/src/bin/lttng-sessiond/trace-ust.c +++ b/src/bin/lttng-sessiond/trace-ust.c @@ -922,6 +922,7 @@ end: 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. */ @@ -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 */ - ust_app_global_update_all(session); + should_update_apps = true; } 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) { - 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; }
This mimics what is done on the track side. Fixes #1210 Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien at efficios.com> --- Used wrong issue number. --- src/bin/lttng-sessiond/trace-ust.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)