X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-consumerd%2Flttng-consumerd.c;h=7f78c4ec2b0971fcfa249a3c35f7c953bd5a8d39;hp=1373a74b28212d5595d8c4f0dc18a89938e6a616;hb=4d62fbf82e90a66f7196331bf515f58e63801d35;hpb=5f702b607116a8303cb09fb091d8b9740c06baca diff --git a/src/bin/lttng-consumerd/lttng-consumerd.c b/src/bin/lttng-consumerd/lttng-consumerd.c index 1373a74b2..7f78c4ec2 100644 --- a/src/bin/lttng-consumerd/lttng-consumerd.c +++ b/src/bin/lttng-consumerd/lttng-consumerd.c @@ -622,6 +622,12 @@ exit_init_data: tmp_ctx = ctx; ctx = NULL; cmm_barrier(); /* Clear ctx for signal handler. */ + /* + * 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(); lttng_consumer_destroy(tmp_ctx); lttng_consumer_cleanup();