Fix: add rcu_barrier() after sessiond_cleanup()
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Mon, 14 Dec 2020 22:30:12 +0000 (17:30 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 18 Jan 2021 19:20:57 +0000 (14:20 -0500)
This is to ensure that tracer event source (event notifier socket) are
removed from the notification thread list.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I2ca8f72c023132c341193bf626c0dac20b89e1f2

src/bin/lttng-sessiond/main.c

index 4bdac5217978d28dd2af6c036d66f0650615a9bf..9cc15d720210fc2a267fe178be19f55a31cf682a 100644 (file)
@@ -1779,6 +1779,13 @@ stop_threads:
        rcu_thread_online();
        sessiond_cleanup();
 
        rcu_thread_online();
        sessiond_cleanup();
 
+       /*
+        * Wait for all pending call_rcu work to complete tearing shutting down
+        * the notification thread. This call_rcu work includes shutting down
+        * UST apps and event notifier pipes.
+        */
+       rcu_barrier();
+
        if (notification_thread) {
                lttng_thread_shutdown(notification_thread);
                lttng_thread_put(notification_thread);
        if (notification_thread) {
                lttng_thread_shutdown(notification_thread);
                lttng_thread_put(notification_thread);
This page took 0.026829 seconds and 4 git commands to generate.