Fix: add missing rcu_barrier before daemon teardown
[lttng-tools.git] / src / bin / lttng-sessiond / main.c
index e4aaa9928f31a0a5a488277d7fee9c645c05d6e4..b29c6745bd51e8ea0cd1c0d9648f0ab8c3fe4198 100644 (file)
@@ -4374,7 +4374,7 @@ error:
        }
 
        lttng_poll_clean(&events);
-
+       stop_threads();
        rcu_unregister_thread();
        return NULL;
 }
@@ -6221,6 +6221,12 @@ exit_client:
 exit_health:
 
 exit_init_data:
+       /*
+        * Wait for all pending call_rcu work to complete before tearing
+        * down data structures. call_rcu worker may be trying to
+        * perform lookups in those structures.
+        */
+       rcu_barrier();
        /*
         * sessiond_cleanup() is called when no other thread is running, except
         * the ht_cleanup thread, which is needed to destroy the hash tables.
This page took 0.041485 seconds and 4 git commands to generate.