Cleanup: missing ')'
[lttng-tools.git] / src / bin / lttng-sessiond / ust-app.c
index 3efda83c194149bedcf68a083db077897297e4dd..d303e8b66ec240f590cda13b621dc0a6918cecf4 100644 (file)
 #include <common/hashtable/utils.h>
 #include <lttng/event-rule/event-rule.h>
 #include <lttng/event-rule/event-rule-internal.h>
-#include <lttng/event-rule/tracepoint.h>
+#include <lttng/event-rule/user-tracepoint.h>
 #include <lttng/condition/condition.h>
-#include <lttng/condition/on-event-internal.h>
-#include <lttng/condition/on-event.h>
+#include <lttng/condition/event-rule-matches-internal.h>
+#include <lttng/condition/event-rule-matches.h>
 #include <lttng/trigger/trigger-internal.h>
 #include <common/sessiond-comm/sessiond-comm.h>
 
@@ -93,7 +93,7 @@ static uint64_t get_next_session_id(void)
 }
 
 static void copy_channel_attr_to_ustctl(
-               struct ustctl_consumer_channel_attr *attr,
+               struct lttng_ust_ctl_consumer_channel_attr *attr,
                struct lttng_ust_abi_channel_attr *uattr)
 {
        /* Copy event attributes since the layout is different. */
@@ -118,8 +118,8 @@ static int ht_match_ust_app_event(struct cds_lfht_node *node, const void *_key)
        const struct ust_app_ht_key *key;
        int ev_loglevel_value;
 
-       assert(node);
-       assert(_key);
+       LTTNG_ASSERT(node);
+       LTTNG_ASSERT(_key);
 
        event = caa_container_of(node, struct ust_app_event, node.node);
        key = _key;
@@ -195,9 +195,9 @@ static void add_unique_ust_app_event(struct ust_app_channel *ua_chan,
        struct ust_app_ht_key key;
        struct lttng_ht *ht;
 
-       assert(ua_chan);
-       assert(ua_chan->events);
-       assert(event);
+       LTTNG_ASSERT(ua_chan);
+       LTTNG_ASSERT(ua_chan->events);
+       LTTNG_ASSERT(event);
 
        ht = ua_chan->events;
        key.name = event->attr.name;
@@ -208,7 +208,7 @@ static void add_unique_ust_app_event(struct ust_app_channel *ua_chan,
        node_ptr = cds_lfht_add_unique(ht->ht,
                        ht->hash_fct(event->node.key, lttng_ht_seed),
                        ht_match_ust_app_event, &key, &event->node.node);
-       assert(node_ptr == &event->node.node);
+       LTTNG_ASSERT(node_ptr == &event->node.node);
 }
 
 /*
@@ -222,7 +222,7 @@ static void close_notify_sock_rcu(struct rcu_head *head)
                caa_container_of(head, struct ust_app_notify_sock_obj, head);
 
        /* Must have a valid fd here. */
-       assert(obj->fd >= 0);
+       LTTNG_ASSERT(obj->fd >= 0);
 
        ret = close(obj->fd);
        if (ret) {
@@ -238,14 +238,14 @@ static void close_notify_sock_rcu(struct rcu_head *head)
  * session.
  *
  * A registry per UID object MUST exists before calling this function or else
- * it assert() if not found. RCU read side lock must be acquired.
+ * it LTTNG_ASSERT() if not found. RCU read side lock must be acquired.
  */
 static struct ust_registry_session *get_session_registry(
                struct ust_app_session *ua_sess)
 {
        struct ust_registry_session *registry = NULL;
 
-       assert(ua_sess);
+       LTTNG_ASSERT(ua_sess);
 
        switch (ua_sess->buffer_type) {
        case LTTNG_BUFFER_PER_PID:
@@ -269,7 +269,7 @@ static struct ust_registry_session *get_session_registry(
                break;
        }
        default:
-               assert(0);
+               abort();
        };
 
 error:
@@ -286,15 +286,24 @@ void delete_ust_app_ctx(int sock, struct ust_app_ctx *ua_ctx,
 {
        int ret;
 
-       assert(ua_ctx);
+       LTTNG_ASSERT(ua_ctx);
 
        if (ua_ctx->obj) {
                pthread_mutex_lock(&app->sock_lock);
-               ret = ustctl_release_object(sock, ua_ctx->obj);
+               ret = lttng_ust_ctl_release_object(sock, ua_ctx->obj);
                pthread_mutex_unlock(&app->sock_lock);
-               if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app sock %d release ctx obj handle %d failed with ret %d",
-                                       sock, ua_ctx->obj->handle, ret);
+               if (ret < 0) {
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app release ctx failed. Application is dead: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app release ctx failed. Communication time out: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else {
+                               ERR("UST app release ctx obj handle %d failed with ret %d: pid = %d, sock = %d",
+                                               ua_ctx->obj->handle, ret,
+                                               app->pid, app->sock);
+                       }
                }
                free(ua_ctx->obj);
        }
@@ -311,18 +320,26 @@ void delete_ust_app_event(int sock, struct ust_app_event *ua_event,
 {
        int ret;
 
-       assert(ua_event);
+       LTTNG_ASSERT(ua_event);
 
        free(ua_event->filter);
        if (ua_event->exclusion != NULL)
                free(ua_event->exclusion);
        if (ua_event->obj != NULL) {
                pthread_mutex_lock(&app->sock_lock);
-               ret = ustctl_release_object(sock, ua_event->obj);
+               ret = lttng_ust_ctl_release_object(sock, ua_event->obj);
                pthread_mutex_unlock(&app->sock_lock);
-               if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app sock %d release event obj failed with ret %d",
-                                       sock, ret);
+               if (ret < 0) {
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app release event failed. Application is dead: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app release event failed. Communication time out: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else {
+                               ERR("UST app release event obj failed with ret %d: pid = %d, sock = %d",
+                                               ret, app->pid, app->sock);
+                       }
                }
                free(ua_event->obj);
        }
@@ -351,7 +368,7 @@ static void delete_ust_app_event_notifier_rule(int sock,
 {
        int ret;
 
-       assert(ua_event_notifier_rule);
+       LTTNG_ASSERT(ua_event_notifier_rule);
 
        if (ua_event_notifier_rule->exclusion != NULL) {
                free(ua_event_notifier_rule->exclusion);
@@ -359,11 +376,19 @@ static void delete_ust_app_event_notifier_rule(int sock,
 
        if (ua_event_notifier_rule->obj != NULL) {
                pthread_mutex_lock(&app->sock_lock);
-               ret = ustctl_release_object(sock, ua_event_notifier_rule->obj);
+               ret = lttng_ust_ctl_release_object(sock, ua_event_notifier_rule->obj);
                pthread_mutex_unlock(&app->sock_lock);
-               if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("Failed to release event notifier object: app = '%s' (ppid %d), ret = %d",
-                                       app->name, (int) app->ppid, ret);
+               if (ret < 0) {
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app release event notifier failed. Application is dead: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app release event notifier failed. Communication time out: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else {
+                               ERR("UST app release event notifier failed with ret %d: pid = %d, sock = %d",
+                                               ret, app->pid, app->sock);
+                       }
                }
 
                free(ua_event_notifier_rule->obj);
@@ -384,15 +409,23 @@ static int release_ust_app_stream(int sock, struct ust_app_stream *stream,
 {
        int ret = 0;
 
-       assert(stream);
+       LTTNG_ASSERT(stream);
 
        if (stream->obj) {
                pthread_mutex_lock(&app->sock_lock);
-               ret = ustctl_release_object(sock, stream->obj);
+               ret = lttng_ust_ctl_release_object(sock, stream->obj);
                pthread_mutex_unlock(&app->sock_lock);
-               if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app sock %d release stream obj failed with ret %d",
-                                       sock, ret);
+               if (ret < 0) {
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app release stream failed. Application is dead: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app release stream failed. Communication time out: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else {
+                               ERR("UST app release stream obj failed with ret %d: pid = %d, sock = %d",
+                                               ret, app->pid, app->sock);
+                       }
                }
                lttng_fd_put(LTTNG_FD_APPS, 2);
                free(stream->obj);
@@ -409,7 +442,7 @@ static
 void delete_ust_app_stream(int sock, struct ust_app_stream *stream,
                struct ust_app *app)
 {
-       assert(stream);
+       LTTNG_ASSERT(stream);
 
        (void) release_ust_app_stream(sock, stream, app);
        free(stream);
@@ -515,7 +548,7 @@ void delete_ust_app_channel(int sock, struct ust_app_channel *ua_chan,
        struct ust_app_stream *stream, *stmp;
        struct ust_registry_session *registry;
 
-       assert(ua_chan);
+       LTTNG_ASSERT(ua_chan);
 
        DBG3("UST app deleting channel %s", ua_chan->name);
 
@@ -529,7 +562,7 @@ void delete_ust_app_channel(int sock, struct ust_app_channel *ua_chan,
        cds_lfht_for_each_entry(ua_chan->ctx->ht, &iter.iter, ua_ctx, node.node) {
                cds_list_del(&ua_ctx->list);
                ret = lttng_ht_del(ua_chan->ctx, &iter);
-               assert(!ret);
+               LTTNG_ASSERT(!ret);
                delete_ust_app_ctx(sock, ua_ctx, app);
        }
 
@@ -537,7 +570,7 @@ void delete_ust_app_channel(int sock, struct ust_app_channel *ua_chan,
        cds_lfht_for_each_entry(ua_chan->events->ht, &iter.iter, ua_event,
                        node.node) {
                ret = lttng_ht_del(ua_chan->events, &iter);
-               assert(!ret);
+               LTTNG_ASSERT(!ret);
                delete_ust_app_event(sock, ua_event, app);
        }
 
@@ -562,13 +595,24 @@ void delete_ust_app_channel(int sock, struct ust_app_channel *ua_chan,
                /* Remove channel from application UST object descriptor. */
                iter.iter.node = &ua_chan->ust_objd_node.node;
                ret = lttng_ht_del(app->ust_objd, &iter);
-               assert(!ret);
+               LTTNG_ASSERT(!ret);
                pthread_mutex_lock(&app->sock_lock);
-               ret = ustctl_release_object(sock, ua_chan->obj);
+               ret = lttng_ust_ctl_release_object(sock, ua_chan->obj);
                pthread_mutex_unlock(&app->sock_lock);
-               if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app sock %d release channel obj failed with ret %d",
-                                       sock, ret);
+               if (ret < 0) {
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app channel %s release failed. Application is dead: pid = %d, sock = %d",
+                                               ua_chan->name, app->pid,
+                                               app->sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app channel %s release failed. Communication time out: pid = %d, sock = %d",
+                                               ua_chan->name, app->pid,
+                                               app->sock);
+                       } else {
+                               ERR("UST app channel %s release failed with ret %d: pid = %d, sock = %d",
+                                               ua_chan->name, ret, app->pid,
+                                               app->sock);
+                       }
                }
                lttng_fd_put(LTTNG_FD_APPS, 1);
                free(ua_chan->obj);
@@ -581,7 +625,7 @@ int ust_app_register_done(struct ust_app *app)
        int ret;
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_register_done(app->sock);
+       ret = lttng_ust_ctl_register_done(app->sock);
        pthread_mutex_unlock(&app->sock_lock);
        return ret;
 }
@@ -596,7 +640,7 @@ int ust_app_release_object(struct ust_app *app, struct lttng_ust_abi_object_data
        } else {
                sock = -1;
        }
-       ret = ustctl_release_object(sock, data);
+       ret = lttng_ust_ctl_release_object(sock, data);
        if (app) {
                pthread_mutex_unlock(&app->sock_lock);
        }
@@ -624,8 +668,8 @@ ssize_t ust_app_push_metadata(struct ust_registry_session *registry,
        ssize_t ret_val;
        uint64_t metadata_key, metadata_version;
 
-       assert(registry);
-       assert(socket);
+       LTTNG_ASSERT(registry);
+       LTTNG_ASSERT(socket);
 
        metadata_key = registry->metadata_key;
 
@@ -760,8 +804,8 @@ static int push_metadata(struct ust_registry_session *registry,
        ssize_t ret;
        struct consumer_socket *socket;
 
-       assert(registry);
-       assert(consumer);
+       LTTNG_ASSERT(registry);
+       LTTNG_ASSERT(consumer);
 
        pthread_mutex_lock(&registry->lock);
        if (registry->metadata_closed) {
@@ -810,8 +854,8 @@ static int close_metadata(struct ust_registry_session *registry,
        uint64_t metadata_key;
        bool registry_was_already_closed;
 
-       assert(registry);
-       assert(consumer);
+       LTTNG_ASSERT(registry);
+       LTTNG_ASSERT(consumer);
 
        rcu_read_lock();
 
@@ -882,11 +926,11 @@ void delete_ust_app_session(int sock, struct ust_app_session *ua_sess,
        struct ust_app_channel *ua_chan;
        struct ust_registry_session *registry;
 
-       assert(ua_sess);
+       LTTNG_ASSERT(ua_sess);
 
        pthread_mutex_lock(&ua_sess->lock);
 
-       assert(!ua_sess->deleted);
+       LTTNG_ASSERT(!ua_sess->deleted);
        ua_sess->deleted = true;
 
        registry = get_session_registry(ua_sess);
@@ -910,7 +954,7 @@ void delete_ust_app_session(int sock, struct ust_app_session *ua_sess,
        cds_lfht_for_each_entry(ua_sess->channels->ht, &iter.iter, ua_chan,
                        node.node) {
                ret = lttng_ht_del(ua_sess->channels, &iter);
-               assert(!ret);
+               LTTNG_ASSERT(!ret);
                delete_ust_app_channel(sock, ua_chan, app);
        }
 
@@ -929,16 +973,25 @@ void delete_ust_app_session(int sock, struct ust_app_session *ua_sess,
 
        if (ua_sess->handle != -1) {
                pthread_mutex_lock(&app->sock_lock);
-               ret = ustctl_release_handle(sock, ua_sess->handle);
+               ret = lttng_ust_ctl_release_handle(sock, ua_sess->handle);
                pthread_mutex_unlock(&app->sock_lock);
-               if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app sock %d release session handle failed with ret %d",
-                                       sock, ret);
+               if (ret < 0) {
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app release session handle failed. Application is dead: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app release session handle failed. Communication time out: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else {
+                               ERR("UST app release session handle failed with ret %d: pid = %d, sock = %d",
+                                               ret, app->pid, app->sock);
+                       }
                }
+
                /* Remove session from application UST object descriptor. */
                iter.iter.node = &ua_sess->ust_objd_node.node;
                ret = lttng_ht_del(app->ust_sessions_objd, &iter);
-               assert(!ret);
+               LTTNG_ASSERT(!ret);
        }
 
        pthread_mutex_unlock(&ua_sess->lock);
@@ -986,7 +1039,7 @@ void delete_ust_app(struct ust_app *app)
        cds_lfht_for_each_entry (app->token_to_event_notifier_rule_ht->ht,
                        &iter.iter, event_notifier_rule, node.node) {
                ret = lttng_ht_del(app->token_to_event_notifier_rule_ht, &iter);
-               assert(!ret);
+               LTTNG_ASSERT(!ret);
 
                delete_ust_app_event_notifier_rule(
                                app->sock, event_notifier_rule, app);
@@ -1022,7 +1075,7 @@ void delete_ust_app(struct ust_app *app)
                        ERR("Error unregistering app from event notifier error accounting");
                }
 
-               ustctl_release_object(sock, app->event_notifier_group.object);
+               lttng_ust_ctl_release_object(sock, app->event_notifier_group.object);
                free(app->event_notifier_group.object);
        }
 
@@ -1088,8 +1141,8 @@ static void destroy_app_session(struct ust_app *app,
        int ret;
        struct lttng_ht_iter iter;
 
-       assert(app);
-       assert(ua_sess);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(ua_sess);
 
        iter.iter.node = &ua_sess->node.node;
        ret = lttng_ht_del(app->sessions, &iter);
@@ -1165,7 +1218,7 @@ struct ust_app_channel *alloc_ust_app_channel(const char *name,
 
        /* Copy attributes */
        if (attr) {
-               /* Translate from lttng_ust_channel to ustctl_consumer_channel_attr. */
+               /* Translate from lttng_ust_channel to lttng_ust_ctl_consumer_channel_attr. */
                ua_chan->attr.subbuf_size = attr->subbuf_size;
                ua_chan->attr.num_subbuf = attr->num_subbuf;
                ua_chan->attr.overwrite = attr->overwrite;
@@ -1249,6 +1302,7 @@ static struct ust_app_event_notifier_rule *alloc_ust_app_event_notifier_rule(
 {
        enum lttng_event_rule_generate_exclusions_status
                        generate_exclusion_status;
+       enum lttng_condition_status cond_status;
        struct ust_app_event_notifier_rule *ua_event_notifier_rule;
        struct lttng_condition *condition = NULL;
        const struct lttng_event_rule *event_rule = NULL;
@@ -1265,12 +1319,17 @@ static struct ust_app_event_notifier_rule *alloc_ust_app_event_notifier_rule(
                        ua_event_notifier_rule->token);
 
        condition = lttng_trigger_get_condition(trigger);
-       assert(condition);
-       assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_ON_EVENT);
+       LTTNG_ASSERT(condition);
+       LTTNG_ASSERT(lttng_condition_get_type(condition) ==
+                       LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES);
 
-       assert(LTTNG_CONDITION_STATUS_OK == lttng_condition_on_event_get_rule(condition, &event_rule));
-       assert(event_rule);
+       cond_status = lttng_condition_event_rule_matches_get_rule(
+                       condition, &event_rule);
+       LTTNG_ASSERT(cond_status == LTTNG_CONDITION_STATUS_OK);
+       LTTNG_ASSERT(event_rule);
 
+       ua_event_notifier_rule->error_counter_index =
+                       lttng_condition_event_rule_matches_get_error_counter_index(condition);
        /* Acquire the event notifier's reference to the trigger. */
        lttng_trigger_get(trigger);
 
@@ -1283,7 +1342,7 @@ static struct ust_app_event_notifier_rule *alloc_ust_app_event_notifier_rule(
        case LTTNG_EVENT_RULE_GENERATE_EXCLUSIONS_STATUS_NONE:
                break;
        default:
-               /* Error occured. */
+               /* Error occurred. */
                ERR("Failed to generate exclusions from trigger while allocating an event notifier rule");
                goto error_put_trigger;
        }
@@ -1357,7 +1416,7 @@ static struct lttng_ust_abi_filter_bytecode *create_ust_filter_bytecode_from_byt
                goto error;
        }
 
-       assert(sizeof(struct lttng_bytecode) ==
+       LTTNG_ASSERT(sizeof(struct lttng_bytecode) ==
                        sizeof(struct lttng_ust_abi_filter_bytecode));
        memcpy(filter, orig_f, sizeof(*filter) + orig_f->len);
 error:
@@ -1381,7 +1440,7 @@ create_ust_capture_bytecode_from_bytecode(const struct lttng_bytecode *orig_f)
                goto error;
        }
 
-       assert(sizeof(struct lttng_bytecode) ==
+       LTTNG_ASSERT(sizeof(struct lttng_bytecode) ==
                        sizeof(struct lttng_ust_abi_capture_bytecode));
        memcpy(capture, orig_f, sizeof(*capture) + orig_f->len);
 error:
@@ -1449,8 +1508,8 @@ static struct ust_app_event *find_ust_app_event(struct lttng_ht *ht,
        struct ust_app_event *event = NULL;
        struct ust_app_ht_key key;
 
-       assert(name);
-       assert(ht);
+       LTTNG_ASSERT(name);
+       LTTNG_ASSERT(ht);
 
        /* Setup key for event lookup. */
        key.name = name;
@@ -1486,7 +1545,7 @@ static struct ust_app_event_notifier_rule *find_ust_app_event_notifier_rule(
        struct lttng_ht_node_u64 *node;
        struct ust_app_event_notifier_rule *event_notifier_rule = NULL;
 
-       assert(ht);
+       LTTNG_ASSERT(ht);
 
        lttng_ht_lookup(ht, &token, &iter);
        node = lttng_ht_iter_get_node_u64(&iter);
@@ -1516,21 +1575,21 @@ int create_ust_channel_context(struct ust_app_channel *ua_chan,
        health_code_update();
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_add_context(app->sock, &ua_ctx->ctx,
+       ret = lttng_ust_ctl_add_context(app->sock, &ua_ctx->ctx,
                        ua_chan->obj, &ua_ctx->obj);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app create channel context failed for app (pid: %d) "
-                                       "with ret %d", app->pid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                        ret = 0;
-                       DBG3("UST app add context failed. Application is dead.");
+                       DBG3("UST app create channel context failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       ret = 0;
+                       WARN("UST app create channel context failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app create channel context failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid, app->sock);
                }
                goto error;
        }
@@ -1563,21 +1622,21 @@ static int set_ust_object_filter(struct ust_app *app,
                goto error;
        }
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_set_filter(app->sock, ust_bytecode,
+       ret = lttng_ust_ctl_set_filter(app->sock, ust_bytecode,
                        ust_object);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app set object filter failed: object = %p of app pid = %d, ret = %d",
-                                       ust_object, app->pid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                        ret = 0;
-                       DBG3("Failed to set UST app object filter. Application is dead.");
+                       DBG3("UST app  set filter failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       ret = 0;
+                       WARN("UST app  set filter failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app  set filter failed with ret %d: pid = %d, sock = %d, object = %p",
+                                       ret, app->pid, app->sock, ust_object);
                }
                goto error;
        }
@@ -1617,21 +1676,22 @@ static int set_ust_capture(struct ust_app *app,
        ust_bytecode->seqnum = capture_seqnum;
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_set_capture(app->sock, ust_bytecode,
+       ret = lttng_ust_ctl_set_capture(app->sock, ust_bytecode,
                        ust_object);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app set object capture failed: object = %p of app pid = %d, ret = %d",
-                                       ust_object, app->pid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       ret = 0;
+                       DBG3("UST app set capture failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
                        ret = 0;
-                       DBG3("Failed to set UST app object capture. Application is dead.");
+                       DBG3("UST app set capture failed. Communication timeout: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app event set capture failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid,
+                                       app->sock);
                }
 
                goto error;
@@ -1659,7 +1719,7 @@ struct lttng_ust_abi_event_exclusion *create_ust_exclusion_from_exclusion(
                goto end;
        }
 
-       assert(sizeof(struct lttng_event_exclusion) ==
+       LTTNG_ASSERT(sizeof(struct lttng_event_exclusion) ==
                        sizeof(struct lttng_ust_abi_event_exclusion));
        memcpy(ust_exclusion, exclusion, exclusion_alloc_size);
 end:
@@ -1676,7 +1736,7 @@ static int set_ust_object_exclusions(struct ust_app *app,
        int ret;
        struct lttng_ust_abi_event_exclusion *ust_exclusions = NULL;
 
-       assert(exclusions && exclusions->count > 0);
+       LTTNG_ASSERT(exclusions && exclusions->count > 0);
 
        health_code_update();
 
@@ -1687,20 +1747,20 @@ static int set_ust_object_exclusions(struct ust_app *app,
                goto error;
        }
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_set_exclusion(app->sock, ust_exclusions, ust_object);
+       ret = lttng_ust_ctl_set_exclusion(app->sock, ust_exclusions, ust_object);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("Failed to set UST app exclusions for object %p of app (pid: %d) "
-                                       "with ret %d", ust_object, app->pid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                        ret = 0;
-                       DBG3("Failed to set UST app object exclusions. Application is dead.");
+                       DBG3("UST app event exclusion failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       ret = 0;
+                       WARN("UST app event exclusion failed. Communication time out(pid: %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app event exclusions failed with ret %d: pid = %d, sock = %d, object = %p",
+                                       ret, app->pid, app->sock, ust_object);
                }
                goto error;
        }
@@ -1724,25 +1784,25 @@ static int disable_ust_object(struct ust_app *app,
        health_code_update();
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_disable(app->sock, object);
+       ret = lttng_ust_ctl_disable(app->sock, object);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("Failed to disable UST app object %p app (pid: %d) with ret %d",
-                                       object, app->pid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                        ret = 0;
-                       DBG3("Failed to disable UST app object. Application is dead.");
+                       DBG3("UST app disable object failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       ret = 0;
+                       WARN("UST app disable object failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app disable object failed with ret %d: pid = %d, sock = %d, object = %p",
+                                       ret, app->pid, app->sock, object);
                }
                goto error;
        }
 
-       DBG2("UST app object %p disabled successfully for app (pid: %d)",
+       DBG2("UST app object %p disabled successfully for app: pid = %d",
                        object, app->pid);
 
 error:
@@ -1761,26 +1821,26 @@ static int disable_ust_channel(struct ust_app *app,
        health_code_update();
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_disable(app->sock, ua_chan->obj);
+       ret = lttng_ust_ctl_disable(app->sock, ua_chan->obj);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app channel %s disable failed for app (pid: %d) "
-                                       "and session handle %d with ret %d",
-                                       ua_chan->name, app->pid, ua_sess->handle, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       ret = 0;
+                       DBG3("UST app disable channel failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
                        ret = 0;
-                       DBG3("UST app disable channel failed. Application is dead.");
+                       WARN("UST app disable channel failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app channel %s disable failed, session handle %d, with ret %d: pid = %d, sock = %d",
+                                       ua_chan->name, ua_sess->handle, ret,
+                                       app->pid, app->sock);
                }
                goto error;
        }
 
-       DBG2("UST app channel %s disabled successfully for app (pid: %d)",
+       DBG2("UST app channel %s disabled successfully for app: pid = %d",
                        ua_chan->name, app->pid);
 
 error:
@@ -1799,28 +1859,28 @@ static int enable_ust_channel(struct ust_app *app,
        health_code_update();
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_enable(app->sock, ua_chan->obj);
+       ret = lttng_ust_ctl_enable(app->sock, ua_chan->obj);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app channel %s enable failed for app (pid: %d) "
-                                       "and session handle %d with ret %d",
-                                       ua_chan->name, app->pid, ua_sess->handle, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       ret = 0;
+                       DBG3("UST app channel %s enable failed. Application is dead: pid = %d, sock = %d",
+                                       ua_chan->name, app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
                        ret = 0;
-                       DBG3("UST app enable channel failed. Application is dead.");
+                       WARN("UST app channel %s enable failed. Communication time out: pid = %d, sock = %d",
+                                       ua_chan->name, app->pid, app->sock);
+               } else {
+                       ERR("UST app channel %s enable failed, session handle %d, with ret %d: pid = %d, sock = %d",
+                                       ua_chan->name, ua_sess->handle, ret,
+                                       app->pid, app->sock);
                }
                goto error;
        }
 
        ua_chan->enabled = 1;
 
-       DBG2("UST app channel %s enabled successfully for app (pid: %d)",
+       DBG2("UST app channel %s enabled successfully for app: pid = %d",
                        ua_chan->name, app->pid);
 
 error:
@@ -1839,25 +1899,25 @@ static int enable_ust_object(
        health_code_update();
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_enable(app->sock, ust_object);
+       ret = lttng_ust_ctl_enable(app->sock, ust_object);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app enable failed for object %p app (pid: %d) with ret %d",
-                                       ust_object, app->pid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                        ret = 0;
-                       DBG3("Failed to enable UST app object. Application is dead.");
+                       DBG3("UST app enable object failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       ret = 0;
+                       WARN("UST app enable object failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app enable object failed with ret %d: pid = %d, sock = %d, object = %p",
+                                       ret, app->pid, app->sock, ust_object);
                }
                goto error;
        }
 
-       DBG2("UST app object %p enabled successfully for app (pid: %d)",
+       DBG2("UST app object %p enabled successfully for app: pid = %d",
                        ust_object, app->pid);
 
 error:
@@ -1876,9 +1936,9 @@ static int send_channel_pid_to_ust(struct ust_app *app,
        int ret;
        struct ust_app_stream *stream, *stmp;
 
-       assert(app);
-       assert(ua_sess);
-       assert(ua_chan);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(ua_chan);
 
        health_code_update();
 
@@ -1890,6 +1950,13 @@ static int send_channel_pid_to_ust(struct ust_app *app,
        if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                ret = -ENOTCONN;        /* Caused by app exiting. */
                goto error;
+       } else if (ret == -EAGAIN) {
+               /* Caused by timeout. */
+               WARN("Communication with application %d timed out on send_channel for channel \"%s\" of session \"%" PRIu64 "\".",
+                               app->pid, ua_chan->name, ua_sess->tracing_id);
+               /* Treat this the same way as an application that is exiting. */
+               ret = -ENOTCONN;
+               goto error;
        } else if (ret < 0) {
                goto error;
        }
@@ -1900,8 +1967,18 @@ static int send_channel_pid_to_ust(struct ust_app *app,
        cds_list_for_each_entry_safe(stream, stmp, &ua_chan->streams.head, list) {
                ret = ust_consumer_send_stream_to_ust(app, ua_chan, stream);
                if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
-                       ret = -ENOTCONN;        /* Caused by app exiting. */
+                       ret = -ENOTCONN; /* Caused by app exiting. */
                        goto error;
+               } else if (ret == -EAGAIN) {
+                       /* Caused by timeout. */
+                       WARN("Communication with application %d timed out on send_stream for stream \"%s\" of channel \"%s\" of session \"%" PRIu64 "\".",
+                                       app->pid, stream->name, ua_chan->name,
+                                       ua_sess->tracing_id);
+                       /*
+                        * Treat this the same way as an application that is
+                        * exiting.
+                        */
+                       ret = -ENOTCONN;
                } else if (ret < 0) {
                        goto error;
                }
@@ -1932,29 +2009,29 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess,
 
        /* Create UST event on tracer */
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_create_event(app->sock, &ua_event->attr, ua_chan->obj,
+       ret = lttng_ust_ctl_create_event(app->sock, &ua_event->attr, ua_chan->obj,
                        &ua_event->obj);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       abort();
-                       ERR("Error ustctl create event %s for app pid: %d with ret %d",
-                                       ua_event->attr.name, app->pid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                        ret = 0;
-                       DBG3("UST app create event failed. Application is dead.");
+                       DBG3("UST app create event failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       ret = 0;
+                       WARN("UST app create event failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app create event '%s' failed with ret %d: pid = %d, sock = %d",
+                                       ua_event->attr.name, ret, app->pid,
+                                       app->sock);
                }
                goto error;
        }
 
        ua_event->handle = ua_event->obj->handle;
 
-       DBG2("UST app event %s created successfully for pid:%d object: %p",
+       DBG2("UST app event %s created successfully for pid:%d object = %p",
                        ua_event->attr.name, app->pid, ua_event->obj);
 
        health_code_update();
@@ -1991,7 +2068,7 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess,
                        switch (ret) {
                        case -LTTNG_UST_ERR_PERM:
                                /* Code flow problem */
-                               assert(0);
+                               abort();
                        case -LTTNG_UST_ERR_EXIST:
                                /* It's OK for our use case. */
                                ret = 0;
@@ -2017,9 +2094,6 @@ static int init_ust_event_notifier_from_event_rule(
        int loglevel = -1, ret = 0;
        const char *pattern;
 
-       /* For now only LTTNG_EVENT_RULE_TYPE_TRACEPOINT are supported. */
-       assert(lttng_event_rule_get_type(rule) ==
-                       LTTNG_EVENT_RULE_TYPE_TRACEPOINT);
 
        memset(event_notifier, 0, sizeof(*event_notifier));
 
@@ -2037,13 +2111,16 @@ static int init_ust_event_notifier_from_event_rule(
        } else {
                const struct lttng_log_level_rule *log_level_rule;
 
-               status = lttng_event_rule_tracepoint_get_pattern(rule, &pattern);
+               LTTNG_ASSERT(lttng_event_rule_get_type(rule) ==
+                               LTTNG_EVENT_RULE_TYPE_USER_TRACEPOINT);
+
+               status = lttng_event_rule_user_tracepoint_get_name_pattern(rule, &pattern);
                if (status != LTTNG_EVENT_RULE_STATUS_OK) {
                        /* At this point, this is a fatal error. */
                        abort();
                }
 
-               status = lttng_event_rule_tracepoint_get_log_level_rule(
+               status = lttng_event_rule_user_tracepoint_get_log_level_rule(
                                rule, &log_level_rule);
                if (status == LTTNG_EVENT_RULE_STATUS_UNSET) {
                        ust_loglevel_type = LTTNG_UST_ABI_LOGLEVEL_ALL;
@@ -2065,7 +2142,7 @@ static int init_ust_event_notifier_from_event_rule(
                                abort();
                        }
 
-                       assert(llr_status == LTTNG_LOG_LEVEL_RULE_STATUS_OK);
+                       LTTNG_ASSERT(llr_status == LTTNG_LOG_LEVEL_RULE_STATUS_OK);
                } else {
                        /* At this point this is a fatal error. */
                        abort();
@@ -2101,21 +2178,30 @@ static int create_ust_event_notifier(struct ust_app *app,
        const struct lttng_event_rule *event_rule = NULL;
        unsigned int capture_bytecode_count = 0, i;
        enum lttng_condition_status cond_status;
+       enum lttng_event_rule_type event_rule_type;
 
        health_code_update();
-       assert(app->event_notifier_group.object);
+       LTTNG_ASSERT(app->event_notifier_group.object);
 
        condition = lttng_trigger_get_const_condition(
                        ua_event_notifier_rule->trigger);
-       assert(condition);
-       assert(lttng_condition_get_type(condition) == LTTNG_CONDITION_TYPE_ON_EVENT);
+       LTTNG_ASSERT(condition);
+       LTTNG_ASSERT(lttng_condition_get_type(condition) ==
+                       LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES);
 
-       condition_status = lttng_condition_on_event_get_rule(
+       condition_status = lttng_condition_event_rule_matches_get_rule(
                        condition, &event_rule);
-       assert(condition_status == LTTNG_CONDITION_STATUS_OK);
+       LTTNG_ASSERT(condition_status == LTTNG_CONDITION_STATUS_OK);
 
-       assert(event_rule);
-       assert(lttng_event_rule_get_type(event_rule) == LTTNG_EVENT_RULE_TYPE_TRACEPOINT);
+       LTTNG_ASSERT(event_rule);
+
+       event_rule_type = lttng_event_rule_get_type(event_rule);
+       LTTNG_ASSERT(event_rule_type == LTTNG_EVENT_RULE_TYPE_USER_TRACEPOINT ||
+                       event_rule_type == LTTNG_EVENT_RULE_TYPE_JUL_LOGGING ||
+                       event_rule_type ==
+                                       LTTNG_EVENT_RULE_TYPE_LOG4J_LOGGING ||
+                       event_rule_type ==
+                                       LTTNG_EVENT_RULE_TYPE_PYTHON_LOGGING);
 
        init_ust_event_notifier_from_event_rule(event_rule, &event_notifier);
        event_notifier.event.token = ua_event_notifier_rule->token;
@@ -2123,33 +2209,31 @@ static int create_ust_event_notifier(struct ust_app *app,
 
        /* Create UST event notifier against the tracer. */
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_create_event_notifier(app->sock, &event_notifier,
+       ret = lttng_ust_ctl_create_event_notifier(app->sock, &event_notifier,
                        app->event_notifier_group.object,
                        &ua_event_notifier_rule->obj);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("Error ustctl create event notifier: name = '%s', app = '%s' (ppid: %d), ret = %d",
-                                       event_notifier.event.name, app->name,
-                                       app->ppid, ret);
-               } else {
-                       /*
-                        * This is normal behavior, an application can die
-                        * during the creation process. Don't report an error so
-                        * the execution can continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       ret = 0;
+                       DBG3("UST app create event notifier failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
                        ret = 0;
-                       DBG3("UST app create event notifier failed (application is dead): app = '%s' (ppid = %d)",
-                                       app->name, app->ppid);
+                       WARN("UST app create event notifier failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app create event notifier '%s' failed with ret %d: pid = %d, sock = %d",
+                                       event_notifier.event.name, ret, app->pid,
+                                       app->sock);
                }
-
                goto error;
        }
 
        ua_event_notifier_rule->handle = ua_event_notifier_rule->obj->handle;
 
-       DBG2("UST app event notifier %s created successfully: app = '%s' (ppid: %d), object: %p",
-                       event_notifier.event.name, app->name, app->ppid,
+       DBG2("UST app event notifier %s created successfully: app = '%s': pid = %d), object = %p",
+                       event_notifier.event.name, app->name, app->pid,
                        ua_event_notifier_rule->obj);
 
        health_code_update();
@@ -2174,13 +2258,13 @@ static int create_ust_event_notifier(struct ust_app *app,
        }
 
        /* Set the capture bytecodes. */
-       cond_status = lttng_condition_on_event_get_capture_descriptor_count(
+       cond_status = lttng_condition_event_rule_matches_get_capture_descriptor_count(
                        condition, &capture_bytecode_count);
-       assert(cond_status == LTTNG_CONDITION_STATUS_OK);
+       LTTNG_ASSERT(cond_status == LTTNG_CONDITION_STATUS_OK);
 
        for (i = 0; i < capture_bytecode_count; i++) {
                const struct lttng_bytecode *capture_bytecode =
-                               lttng_condition_on_event_get_capture_bytecode_at_index(
+                               lttng_condition_event_rule_matches_get_capture_bytecode_at_index(
                                                condition, i);
 
                ret = set_ust_capture(app, capture_bytecode, i,
@@ -2341,12 +2425,12 @@ static void shadow_copy_session(struct ust_app_session *ua_sess,
                                app->bits_per_long);
                break;
        default:
-               assert(0);
+               abort();
                goto error;
        }
        if (ret < 0) {
                PERROR("asprintf UST shadow copy session");
-               assert(0);
+               abort();
                goto error;
        }
 
@@ -2369,12 +2453,12 @@ static void shadow_copy_session(struct ust_app_session *ua_sess,
                                        app->uid, app->bits_per_long);
                        break;
                default:
-                       assert(0);
+                       abort();
                        goto error;
                }
                if (ret < 0) {
                        PERROR("sprintf UST shadow copy session");
-                       assert(0);
+                       abort();
                        goto error;
                }
                strncat(ua_sess->shm_path, tmp_shm_path,
@@ -2433,8 +2517,8 @@ static int setup_buffer_reg_pid(struct ust_app_session *ua_sess,
        int ret = 0;
        struct buffer_reg_pid *reg_pid;
 
-       assert(ua_sess);
-       assert(app);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(app);
 
        rcu_read_lock();
 
@@ -2502,8 +2586,8 @@ static int setup_buffer_reg_uid(struct ltt_ust_session *usess,
        int ret = 0;
        struct buffer_reg_uid *reg_uid;
 
-       assert(usess);
-       assert(app);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(app);
 
        rcu_read_lock();
 
@@ -2566,7 +2650,7 @@ error:
  * be NULL.
  *
  * Returns 0 on success or else a negative code which is either -ENOMEM or
- * -ENOTCONN which is the default code if the ustctl_create_session fails.
+ * -ENOTCONN which is the default code if the lttng_ust_ctl_create_session fails.
  */
 static int find_or_create_ust_app_session(struct ltt_ust_session *usess,
                struct ust_app *app, struct ust_app_session **ua_sess_ptr,
@@ -2575,9 +2659,9 @@ static int find_or_create_ust_app_session(struct ltt_ust_session *usess,
        int ret, created = 0;
        struct ust_app_session *ua_sess;
 
-       assert(usess);
-       assert(app);
-       assert(ua_sess_ptr);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(ua_sess_ptr);
 
        health_code_update();
 
@@ -2613,7 +2697,7 @@ static int find_or_create_ust_app_session(struct ltt_ust_session *usess,
                }
                break;
        default:
-               assert(0);
+               abort();
                ret = -EINVAL;
                goto error;
        }
@@ -2622,21 +2706,20 @@ static int find_or_create_ust_app_session(struct ltt_ust_session *usess,
 
        if (ua_sess->handle == -1) {
                pthread_mutex_lock(&app->sock_lock);
-               ret = ustctl_create_session(app->sock);
+               ret = lttng_ust_ctl_create_session(app->sock);
                pthread_mutex_unlock(&app->sock_lock);
                if (ret < 0) {
-                       if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                               ERR("Creating session for app pid %d with ret %d",
-                                               app->pid, ret);
-                       } else {
-                               DBG("UST app creating session failed. Application is dead");
-                               /*
-                                * This is normal behavior, an application can die during the
-                                * creation process. Don't report an error so the execution can
-                                * continue normally. This will get flagged ENOTCONN and the
-                                * caller will handle it.
-                                */
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG("UST app creating session failed. Application is dead: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                               ret = 0;
+                       } else if (ret == -EAGAIN) {
+                               DBG("UST app creating session failed. Communication time out: pid = %d, sock = %d",
+                                               app->pid, app->sock);
                                ret = 0;
+                       } else {
+                               ERR("UST app creating session failed with ret %d: pid = %d, sock =%d",
+                                               ret, app->pid, app->sock);
                        }
                        delete_ust_app_session(-1, ua_sess, app);
                        if (ret != -ENOMEM) {
@@ -2686,8 +2769,8 @@ static int ht_match_ust_app_ctx(struct cds_lfht_node *node, const void *_key)
        struct ust_app_ctx *ctx;
        const struct lttng_ust_context_attr *key;
 
-       assert(node);
-       assert(_key);
+       LTTNG_ASSERT(node);
+       LTTNG_ASSERT(_key);
 
        ctx = caa_container_of(node, struct ust_app_ctx, node.node);
        key = _key;
@@ -2738,8 +2821,8 @@ struct ust_app_ctx *find_ust_app_context(struct lttng_ht *ht,
        struct lttng_ht_node_ulong *node;
        struct ust_app_ctx *app_ctx = NULL;
 
-       assert(uctx);
-       assert(ht);
+       LTTNG_ASSERT(uctx);
+       LTTNG_ASSERT(ht);
 
        /* Lookup using the lttng_ust_context_type and a custom match fct. */
        cds_lfht_lookup(ht->ht, ht->hash_fct((void *) uctx->ctx, lttng_ht_seed),
@@ -2904,10 +2987,10 @@ static int do_consumer_create_channel(struct ltt_ust_session *usess,
        unsigned int nb_fd = 0;
        struct consumer_socket *socket;
 
-       assert(usess);
-       assert(ua_sess);
-       assert(ua_chan);
-       assert(registry);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(ua_chan);
+       LTTNG_ASSERT(registry);
 
        rcu_read_lock();
        health_code_update();
@@ -2954,7 +3037,7 @@ static int do_consumer_create_channel(struct ltt_ust_session *usess,
        health_code_update();
 
        /*
-        * Now get the channel from the consumer. This call wil populate the stream
+        * Now get the channel from the consumer. This call will populate the stream
         * list of that channel and set the ust objects.
         */
        if (usess->consumer->enabled) {
@@ -2996,10 +3079,10 @@ static int duplicate_stream_object(struct buffer_reg_stream *reg_stream,
 {
        int ret;
 
-       assert(reg_stream);
-       assert(stream);
+       LTTNG_ASSERT(reg_stream);
+       LTTNG_ASSERT(stream);
 
-       /* Reserve the amount of file descriptor we need. */
+       /* Duplicating a stream requires 2 new fds. Reserve them. */
        ret = lttng_fd_get(LTTNG_FD_APPS, 2);
        if (ret < 0) {
                ERR("Exhausted number of available FD upon duplicate stream");
@@ -3007,7 +3090,7 @@ static int duplicate_stream_object(struct buffer_reg_stream *reg_stream,
        }
 
        /* Duplicate object for stream once the original is in the registry. */
-       ret = ustctl_duplicate_ust_object_data(&stream->obj,
+       ret = lttng_ust_ctl_duplicate_ust_object_data(&stream->obj,
                        reg_stream->obj.ust);
        if (ret < 0) {
                ERR("Duplicate stream obj from %p to %p failed with ret %d",
@@ -3032,10 +3115,10 @@ static int duplicate_channel_object(struct buffer_reg_channel *buf_reg_chan,
 {
        int ret;
 
-       assert(buf_reg_chan);
-       assert(ua_chan);
+       LTTNG_ASSERT(buf_reg_chan);
+       LTTNG_ASSERT(ua_chan);
 
-       /* Need two fds for the channel. */
+       /* Duplicating a channel requires 1 new fd. Reserve it. */
        ret = lttng_fd_get(LTTNG_FD_APPS, 1);
        if (ret < 0) {
                ERR("Exhausted number of available FD upon duplicate channel");
@@ -3043,7 +3126,7 @@ static int duplicate_channel_object(struct buffer_reg_channel *buf_reg_chan,
        }
 
        /* Duplicate object for stream once the original is in the registry. */
-       ret = ustctl_duplicate_ust_object_data(&ua_chan->obj, buf_reg_chan->obj.ust);
+       ret = lttng_ust_ctl_duplicate_ust_object_data(&ua_chan->obj, buf_reg_chan->obj.ust);
        if (ret < 0) {
                ERR("Duplicate channel obj from %p to %p failed with ret: %d",
                                buf_reg_chan->obj.ust, ua_chan->obj, ret);
@@ -3072,8 +3155,8 @@ static int setup_buffer_reg_streams(struct buffer_reg_channel *buf_reg_chan,
        int ret = 0;
        struct ust_app_stream *stream, *stmp;
 
-       assert(buf_reg_chan);
-       assert(ua_chan);
+       LTTNG_ASSERT(buf_reg_chan);
+       LTTNG_ASSERT(ua_chan);
 
        DBG2("UST app setup buffer registry stream");
 
@@ -3117,8 +3200,8 @@ static int create_buffer_reg_channel(struct buffer_reg_session *reg_sess,
        int ret;
        struct buffer_reg_channel *buf_reg_chan = NULL;
 
-       assert(reg_sess);
-       assert(ua_chan);
+       LTTNG_ASSERT(reg_sess);
+       LTTNG_ASSERT(ua_chan);
 
        DBG2("UST app creating buffer registry channel for %s", ua_chan->name);
 
@@ -3127,7 +3210,7 @@ static int create_buffer_reg_channel(struct buffer_reg_session *reg_sess,
        if (ret < 0) {
                goto error_create;
        }
-       assert(buf_reg_chan);
+       LTTNG_ASSERT(buf_reg_chan);
        buf_reg_chan->consumer_key = ua_chan->key;
        buf_reg_chan->subbuf_size = ua_chan->attr.subbuf_size;
        buf_reg_chan->num_subbuf = ua_chan->attr.num_subbuf;
@@ -3165,10 +3248,10 @@ static int setup_buffer_reg_channel(struct buffer_reg_session *reg_sess,
 {
        int ret;
 
-       assert(reg_sess);
-       assert(buf_reg_chan);
-       assert(ua_chan);
-       assert(ua_chan->obj);
+       LTTNG_ASSERT(reg_sess);
+       LTTNG_ASSERT(buf_reg_chan);
+       LTTNG_ASSERT(ua_chan);
+       LTTNG_ASSERT(ua_chan->obj);
 
        DBG2("UST app setup buffer registry channel for %s", ua_chan->name);
 
@@ -3201,10 +3284,10 @@ static int send_channel_uid_to_ust(struct buffer_reg_channel *buf_reg_chan,
        int ret;
        struct buffer_reg_stream *reg_stream;
 
-       assert(buf_reg_chan);
-       assert(app);
-       assert(ua_sess);
-       assert(ua_chan);
+       LTTNG_ASSERT(buf_reg_chan);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(ua_chan);
 
        DBG("UST app sending buffer registry channel to ust sock %d", app->sock);
 
@@ -3218,6 +3301,13 @@ static int send_channel_uid_to_ust(struct buffer_reg_channel *buf_reg_chan,
        if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                ret = -ENOTCONN;        /* Caused by app exiting. */
                goto error;
+       } else if (ret == -EAGAIN) {
+               /* Caused by timeout. */
+               WARN("Communication with application %d timed out on send_channel for channel \"%s\" of session \"%" PRIu64 "\".",
+                               app->pid, ua_chan->name, ua_sess->tracing_id);
+               /* Treat this the same way as an application that is exiting. */
+               ret = -ENOTCONN;
+               goto error;
        } else if (ret < 0) {
                goto error;
        }
@@ -3236,10 +3326,21 @@ static int send_channel_uid_to_ust(struct buffer_reg_channel *buf_reg_chan,
 
                ret = ust_consumer_send_stream_to_ust(app, ua_chan, &stream);
                if (ret < 0) {
-                       (void) release_ust_app_stream(-1, &stream, app);
                        if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
                                ret = -ENOTCONN; /* Caused by app exiting. */
+                       } else if (ret == -EAGAIN) {
+                               /*
+                                * Caused by timeout.
+                                * Treat this the same way as an application
+                                * that is exiting.
+                                */
+                               WARN("Communication with application %d timed out on send_stream for stream \"%s\" of channel \"%s\" of session \"%" PRIu64 "\".",
+                                               app->pid, stream.name,
+                                               ua_chan->name,
+                                               ua_sess->tracing_id);
+                               ret = -ENOTCONN;
                        }
+                       (void) release_ust_app_stream(-1, &stream, app);
                        goto error_stream_unlock;
                }
 
@@ -3276,10 +3377,10 @@ static int create_channel_per_uid(struct ust_app *app,
        enum lttng_error_code notification_ret;
        struct ust_registry_channel *ust_reg_chan;
 
-       assert(app);
-       assert(usess);
-       assert(ua_sess);
-       assert(ua_chan);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(ua_chan);
 
        DBG("UST app creating channel %s with per UID buffers", ua_chan->name);
 
@@ -3289,7 +3390,7 @@ static int create_channel_per_uid(struct ust_app *app,
         * object. If none can be find, there is a code flow problem or a
         * teardown race.
         */
-       assert(reg_uid);
+       LTTNG_ASSERT(reg_uid);
 
        buf_reg_chan = buffer_reg_channel_find(ua_chan->tracing_channel_id,
                        reg_uid);
@@ -3306,9 +3407,9 @@ static int create_channel_per_uid(struct ust_app *app,
        }
 
        session = session_find_by_id(ua_sess->tracing_id);
-       assert(session);
-       assert(pthread_mutex_trylock(&session->lock));
-       assert(session_trylock_list());
+       LTTNG_ASSERT(session);
+       LTTNG_ASSERT(pthread_mutex_trylock(&session->lock));
+       LTTNG_ASSERT(session_trylock_list());
 
        /*
         * Create the buffers on the consumer side. This call populates the
@@ -3346,7 +3447,7 @@ static int create_channel_per_uid(struct ust_app *app,
        pthread_mutex_lock(&reg_uid->registry->reg.ust->lock);
        ust_reg_chan = ust_registry_channel_find(reg_uid->registry->reg.ust,
                        ua_chan->tracing_channel_id);
-       assert(ust_reg_chan);
+       LTTNG_ASSERT(ust_reg_chan);
        ust_reg_chan->consumer_key = ua_chan->key;
        ust_reg_chan = NULL;
        pthread_mutex_unlock(&reg_uid->registry->reg.ust->lock);
@@ -3401,10 +3502,10 @@ static int create_channel_per_pid(struct ust_app *app,
        uint64_t chan_reg_key;
        struct ust_registry_channel *ust_reg_chan;
 
-       assert(app);
-       assert(usess);
-       assert(ua_sess);
-       assert(ua_chan);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(ua_chan);
 
        DBG("UST app creating channel %s with per PID buffers", ua_chan->name);
 
@@ -3412,7 +3513,7 @@ static int create_channel_per_pid(struct ust_app *app,
 
        registry = get_session_registry(ua_sess);
        /* The UST app session lock is held, registry shall not be null. */
-       assert(registry);
+       LTTNG_ASSERT(registry);
 
        /* Create and add a new channel registry to session. */
        ret = ust_registry_channel_add(registry, ua_chan->key);
@@ -3423,10 +3524,10 @@ static int create_channel_per_pid(struct ust_app *app,
        }
 
        session = session_find_by_id(ua_sess->tracing_id);
-       assert(session);
+       LTTNG_ASSERT(session);
 
-       assert(pthread_mutex_trylock(&session->lock));
-       assert(session_trylock_list());
+       LTTNG_ASSERT(pthread_mutex_trylock(&session->lock));
+       LTTNG_ASSERT(session_trylock_list());
 
        /* Create and get channel on the consumer side. */
        ret = do_consumer_create_channel(usess, ua_sess, ua_chan,
@@ -3449,7 +3550,7 @@ static int create_channel_per_pid(struct ust_app *app,
        chan_reg_key = ua_chan->key;
        pthread_mutex_lock(&registry->lock);
        ust_reg_chan = ust_registry_channel_find(registry, chan_reg_key);
-       assert(ust_reg_chan);
+       LTTNG_ASSERT(ust_reg_chan);
        ust_reg_chan->consumer_key = ua_chan->key;
        pthread_mutex_unlock(&registry->lock);
 
@@ -3495,11 +3596,11 @@ static int ust_app_channel_send(struct ust_app *app,
 {
        int ret;
 
-       assert(app);
-       assert(usess);
-       assert(usess->active);
-       assert(ua_sess);
-       assert(ua_chan);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(usess->active);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(ua_chan);
 
        /* Handle buffer type before sending the channel to the application. */
        switch (usess->buffer_type) {
@@ -3520,7 +3621,7 @@ static int ust_app_channel_send(struct ust_app *app,
                break;
        }
        default:
-               assert(0);
+               abort();
                ret = -EINVAL;
                goto error;
        }
@@ -3634,8 +3735,8 @@ int create_ust_app_event(struct ust_app_session *ua_sess,
 
        add_unique_ust_app_event(ua_chan, ua_event);
 
-       DBG2("UST app create event completed: app = '%s' (ppid: %d)",
-                       app->name, app->ppid);
+       DBG2("UST app create event completed: app = '%s' pid = %d",
+                       app->name, app->pid);
 
 end:
        return ret;
@@ -3687,8 +3788,8 @@ int create_ust_app_event_notifier_rule(struct lttng_trigger *trigger,
        lttng_ht_add_unique_u64(app->token_to_event_notifier_rule_ht,
                        &ua_event_notifier_rule->node);
 
-       DBG2("UST app create token event rule completed: app = '%s' (ppid: %d), token = %" PRIu64,
-                       app->name, app->ppid, lttng_trigger_get_tracer_token(trigger));
+       DBG2("UST app create token event rule completed: app = '%s', pid = %d), token = %" PRIu64,
+                       app->name, app->pid, lttng_trigger_get_tracer_token(trigger));
 
        goto end;
 
@@ -3713,13 +3814,13 @@ static int create_ust_app_metadata(struct ust_app_session *ua_sess,
        struct ust_registry_session *registry;
        struct ltt_session *session = NULL;
 
-       assert(ua_sess);
-       assert(app);
-       assert(consumer);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(consumer);
 
        registry = get_session_registry(ua_sess);
        /* The UST app session is held registry shall not be null. */
-       assert(registry);
+       LTTNG_ASSERT(registry);
 
        pthread_mutex_lock(&registry->lock);
 
@@ -3762,10 +3863,10 @@ static int create_ust_app_metadata(struct ust_app_session *ua_sess,
        registry->metadata_key = metadata->key;
 
        session = session_find_by_id(ua_sess->tracing_id);
-       assert(session);
+       LTTNG_ASSERT(session);
 
-       assert(pthread_mutex_trylock(&session->lock));
-       assert(session_trylock_list());
+       LTTNG_ASSERT(pthread_mutex_trylock(&session->lock));
+       LTTNG_ASSERT(session_trylock_list());
 
        /*
         * Ask the metadata channel creation to the consumer. The metadata object
@@ -3846,8 +3947,8 @@ struct ust_app *ust_app_create(struct ust_register_msg *msg, int sock)
        struct ust_app *lta = NULL;
        struct lttng_pipe *event_notifier_event_source_pipe = NULL;
 
-       assert(msg);
-       assert(sock >= 0);
+       LTTNG_ASSERT(msg);
+       LTTNG_ASSERT(sock >= 0);
 
        DBG3("UST app creating application for socket %d", sock);
 
@@ -3870,15 +3971,15 @@ struct ust_app *ust_app_create(struct ust_register_msg *msg, int sock)
         */
        ret = lttng_fd_get(LTTNG_FD_APPS, 2);
        if (ret) {
-               ERR("Failed to reserve two file descriptors for the event source pipe while creating a new application instance: app = '%s' (ppid: %d)",
-                               msg->name, (int) msg->ppid);
+               ERR("Failed to reserve two file descriptors for the event source pipe while creating a new application instance: app = '%s', pid = %d",
+                               msg->name, (int) msg->pid);
                goto error;
        }
 
        event_notifier_event_source_pipe = lttng_pipe_open(FD_CLOEXEC);
        if (!event_notifier_event_source_pipe) {
-               PERROR("Failed to open application event source pipe: '%s' (ppid = %d)",
-                               msg->name, msg->ppid);
+               PERROR("Failed to open application event source pipe: '%s' (pid = %d)",
+                               msg->name, msg->pid);
                goto error;
        }
 
@@ -3942,8 +4043,8 @@ error:
  */
 void ust_app_add(struct ust_app *app)
 {
-       assert(app);
-       assert(app->notify_sock >= 0);
+       LTTNG_ASSERT(app);
+       LTTNG_ASSERT(app->notify_sock >= 0);
 
        app->registration_time = time(NULL);
 
@@ -3966,8 +4067,8 @@ void ust_app_add(struct ust_app *app)
        lttng_ht_node_init_ulong(&app->notify_sock_n, app->notify_sock);
        lttng_ht_add_unique_ulong(ust_app_ht_by_notify_sock, &app->notify_sock_n);
 
-       DBG("App registered with pid:%d ppid:%d uid:%d gid:%d sock:%d name:%s "
-                       "notify_sock:%d (version %d.%d)", app->pid, app->ppid, app->uid,
+       DBG("App registered with pid:%d ppid:%d uid:%d gid:%d sock =%d name:%s "
+                       "notify_sock =%d (version %d.%d)", app->pid, app->ppid, app->uid,
                        app->gid, app->sock, app->name, app->notify_sock, app->v_major,
                        app->v_minor);
 
@@ -3984,22 +4085,37 @@ int ust_app_version(struct ust_app *app)
 {
        int ret;
 
-       assert(app);
+       LTTNG_ASSERT(app);
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_tracer_version(app->sock, &app->version);
+       ret = lttng_ust_ctl_tracer_version(app->sock, &app->version);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
-                       ERR("UST app %d version failed with ret %d", app->sock, ret);
+               if (ret == -LTTNG_UST_ERR_EXITING || ret == -EPIPE) {
+                       DBG3("UST app version failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app version failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
                } else {
-                       DBG3("UST app %d version failed. Application is dead", app->sock);
+                       ERR("UST app version failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid, app->sock);
                }
        }
 
        return ret;
 }
 
+bool ust_app_supports_notifiers(const struct ust_app *app)
+{
+       return app->v_major >= 9;
+}
+
+bool ust_app_supports_counters(const struct ust_app *app)
+{
+       return app->v_major >= 9;
+}
+
 /*
  * Setup the base event notifier group.
  *
@@ -4014,32 +4130,41 @@ int ust_app_setup_event_notifier_group(struct ust_app *app)
        enum lttng_error_code lttng_ret;
        enum event_notifier_error_accounting_status event_notifier_error_accounting_status;
 
-       assert(app);
+       LTTNG_ASSERT(app);
+
+       if (!ust_app_supports_notifiers(app)) {
+               ret = -ENOSYS;
+               goto error;
+       }
 
        /* Get the write side of the pipe. */
        event_pipe_write_fd = lttng_pipe_get_writefd(
                        app->event_notifier_group.event_pipe);
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_create_event_notifier_group(app->sock,
+       ret = lttng_ust_ctl_create_event_notifier_group(app->sock,
                        event_pipe_write_fd, &event_notifier_group);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
-                       ERR("Failed to create application event notifier group: ret = %d, app socket fd = %d, event_pipe_write_fd = %d",
-                                       ret, app->sock, event_pipe_write_fd);
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       ret = 0;
+                       DBG3("UST app create event notifier group failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       ret = 0;
+                       WARN("UST app create event notifier group failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
                } else {
-                       DBG("Failed to create application event notifier group (application is dead): app socket fd = %d",
-                                       app->sock);
+                       ERR("UST app create event notifier group failed with ret %d: pid = %d, sock = %d, event_pipe_write_fd: %d",
+                                       ret, app->pid, app->sock, event_pipe_write_fd);
                }
-
                goto error;
        }
 
        ret = lttng_pipe_write_close(app->event_notifier_group.event_pipe);
        if (ret) {
-               ERR("Failed to close write end of the application's event source pipe: app = '%s' (ppid = %d)",
-                               app->name, app->ppid);
+               ERR("Failed to close write end of the application's event source pipe: app = '%s' (pid = %d)",
+                               app->name, app->pid);
                goto error;
        }
 
@@ -4063,17 +4188,40 @@ int ust_app_setup_event_notifier_group(struct ust_app *app)
        /* Assign handle only when the complete setup is valid. */
        app->event_notifier_group.object = event_notifier_group;
 
-       event_notifier_error_accounting_status = event_notifier_error_accounting_register_app(app);
-       if (event_notifier_error_accounting_status != EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK) {
+       event_notifier_error_accounting_status =
+                       event_notifier_error_accounting_register_app(app);
+       switch (event_notifier_error_accounting_status) {
+       case EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK:
+               break;
+       case EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_UNSUPPORTED:
+               DBG3("Failed to setup event notifier error accounting (application does not support notifier error accounting): app socket fd = %d, app name = '%s', app pid = %d",
+                               app->sock, app->name, (int) app->pid);
+               ret = 0;
+               goto error_accounting;
+       case EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_APP_DEAD:
+               DBG3("Failed to setup event notifier error accounting (application is dead): app socket fd = %d, app name = '%s', app pid = %d",
+                               app->sock, app->name, (int) app->pid);
+               ret = 0;
+               goto error_accounting;
+       default:
                ERR("Failed to setup event notifier error accounting for app");
                ret = -1;
-               goto error;
+               goto error_accounting;
        }
 
        return ret;
 
+error_accounting:
+       lttng_ret = notification_thread_command_remove_tracer_event_source(
+                       the_notification_thread_handle,
+                       lttng_pipe_get_readfd(
+                                       app->event_notifier_group.event_pipe));
+       if (lttng_ret != LTTNG_OK) {
+               ERR("Failed to remove application tracer event source from notification thread");
+       }
+
 error:
-       ustctl_release_object(app->sock, app->event_notifier_group.object);
+       lttng_ust_ctl_release_object(app->sock, app->event_notifier_group.object);
        free(app->event_notifier_group.object);
        app->event_notifier_group.object = NULL;
        return ret;
@@ -4099,7 +4247,7 @@ void ust_app_unregister(int sock)
        /* Get the node reference for a call_rcu */
        lttng_ht_lookup(ust_app_ht_by_sock, (void *)((unsigned long) sock), &ust_app_sock_iter);
        node = lttng_ht_iter_get_node_ulong(&ust_app_sock_iter);
-       assert(node);
+       LTTNG_ASSERT(node);
 
        lta = caa_container_of(node, struct ust_app, sock_n);
        DBG("PID %d unregistering with sock %d", lta->pid, sock);
@@ -4169,7 +4317,7 @@ void ust_app_unregister(int sock)
 
        /* Remove application from PID hash table */
        ret = lttng_ht_del(ust_app_ht_by_sock, &ust_app_sock_iter);
-       assert(!ret);
+       LTTNG_ASSERT(!ret);
 
        /*
         * Remove application from notify hash table. The thread handling the
@@ -4233,7 +4381,7 @@ int ust_app_list_events(struct lttng_event **events)
                        continue;
                }
                pthread_mutex_lock(&app->sock_lock);
-               handle = ustctl_tracepoint_list(app->sock);
+               handle = lttng_ust_ctl_tracepoint_list(app->sock);
                if (handle < 0) {
                        if (handle != -EPIPE && handle != -LTTNG_UST_ERR_EXITING) {
                                ERR("UST app list events getting handle failed for app pid %d",
@@ -4243,7 +4391,7 @@ int ust_app_list_events(struct lttng_event **events)
                        continue;
                }
 
-               while ((ret = ustctl_tracepoint_list_get(app->sock, handle,
+               while ((ret = lttng_ust_ctl_tracepoint_list_get(app->sock, handle,
                                        &uiter)) != -LTTNG_UST_ERR_NOENT) {
                        /* Handle ustctl error. */
                        if (ret < 0) {
@@ -4254,15 +4402,10 @@ int ust_app_list_events(struct lttng_event **events)
                                                        app->sock, ret);
                                } else {
                                        DBG3("UST app tp list get failed. Application is dead");
-                                       /*
-                                        * This is normal behavior, an application can die during the
-                                        * creation process. Don't report an error so the execution can
-                                        * continue normally. Continue normal execution.
-                                        */
                                        break;
                                }
                                free(tmp_event);
-                               release_ret = ustctl_release_handle(app->sock, handle);
+                               release_ret = lttng_ust_ctl_release_handle(app->sock, handle);
                                if (release_ret < 0 &&
                                                release_ret != -LTTNG_UST_ERR_EXITING &&
                                                release_ret != -EPIPE) {
@@ -4289,7 +4432,7 @@ int ust_app_list_events(struct lttng_event **events)
                                        PERROR("realloc ust app events");
                                        free(tmp_event);
                                        ret = -ENOMEM;
-                                       release_ret = ustctl_release_handle(app->sock, handle);
+                                       release_ret = lttng_ust_ctl_release_handle(app->sock, handle);
                                        if (release_ret < 0 &&
                                                        release_ret != -LTTNG_UST_ERR_EXITING &&
                                                        release_ret != -EPIPE) {
@@ -4311,10 +4454,19 @@ int ust_app_list_events(struct lttng_event **events)
                        tmp_event[count].enabled = -1;
                        count++;
                }
-               ret = ustctl_release_handle(app->sock, handle);
+               ret = lttng_ust_ctl_release_handle(app->sock, handle);
                pthread_mutex_unlock(&app->sock_lock);
-               if (ret < 0 && ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) {
-                       ERR("Error releasing app handle for app %d with ret %d", app->sock, ret);
+               if (ret < 0) {
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("Error releasing app handle. Application died: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("Error releasing app handle. Communication time out: pid = %d, sock = %d",
+                                               app->pid, app->sock);
+                       } else {
+                               ERR("Error releasing app handle with ret %d: pid = %d, sock = %d",
+                                               ret, app->pid, app->sock);
+                       }
                }
        }
 
@@ -4364,7 +4516,7 @@ int ust_app_list_event_fields(struct lttng_event_field **fields)
                        continue;
                }
                pthread_mutex_lock(&app->sock_lock);
-               handle = ustctl_tracepoint_field_list(app->sock);
+               handle = lttng_ust_ctl_tracepoint_field_list(app->sock);
                if (handle < 0) {
                        if (handle != -EPIPE && handle != -LTTNG_UST_ERR_EXITING) {
                                ERR("UST app list field getting handle failed for app pid %d",
@@ -4374,7 +4526,7 @@ int ust_app_list_event_fields(struct lttng_event_field **fields)
                        continue;
                }
 
-               while ((ret = ustctl_tracepoint_field_list_get(app->sock, handle,
+               while ((ret = lttng_ust_ctl_tracepoint_field_list_get(app->sock, handle,
                                        &uiter)) != -LTTNG_UST_ERR_NOENT) {
                        /* Handle ustctl error. */
                        if (ret < 0) {
@@ -4385,15 +4537,10 @@ int ust_app_list_event_fields(struct lttng_event_field **fields)
                                                        app->sock, ret);
                                } else {
                                        DBG3("UST app tp list field failed. Application is dead");
-                                       /*
-                                        * This is normal behavior, an application can die during the
-                                        * creation process. Don't report an error so the execution can
-                                        * continue normally. Reset list and count for next app.
-                                        */
                                        break;
                                }
                                free(tmp_event);
-                               release_ret = ustctl_release_handle(app->sock, handle);
+                               release_ret = lttng_ust_ctl_release_handle(app->sock, handle);
                                pthread_mutex_unlock(&app->sock_lock);
                                if (release_ret < 0 &&
                                                release_ret != -LTTNG_UST_ERR_EXITING &&
@@ -4420,7 +4567,7 @@ int ust_app_list_event_fields(struct lttng_event_field **fields)
                                        PERROR("realloc ust app event fields");
                                        free(tmp_event);
                                        ret = -ENOMEM;
-                                       release_ret = ustctl_release_handle(app->sock, handle);
+                                       release_ret = lttng_ust_ctl_release_handle(app->sock, handle);
                                        pthread_mutex_unlock(&app->sock_lock);
                                        if (release_ret &&
                                                        release_ret != -LTTNG_UST_ERR_EXITING &&
@@ -4448,7 +4595,7 @@ int ust_app_list_event_fields(struct lttng_event_field **fields)
                        tmp_event[count].event.enabled = -1;
                        count++;
                }
-               ret = ustctl_release_handle(app->sock, handle);
+               ret = lttng_ust_ctl_release_handle(app->sock, handle);
                pthread_mutex_unlock(&app->sock_lock);
                if (ret < 0 &&
                                ret != -LTTNG_UST_ERR_EXITING &&
@@ -4492,7 +4639,7 @@ void ust_app_clean_list(void)
                         * Assert that all notifiers are gone as all triggers
                         * are unregistered prior to this clean-up.
                         */
-                       assert(lttng_ht_get_count(app->token_to_event_notifier_rule_ht) == 0);
+                       LTTNG_ASSERT(lttng_ht_get_count(app->token_to_event_notifier_rule_ht) == 0);
 
                        ust_app_notify_sock_unregister(app->notify_sock);
                }
@@ -4501,7 +4648,7 @@ void ust_app_clean_list(void)
        if (ust_app_ht) {
                cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, pid_n.node) {
                        ret = lttng_ht_del(ust_app_ht, &iter);
-                       assert(!ret);
+                       LTTNG_ASSERT(!ret);
                        call_rcu(&app->pid_n.head, delete_ust_app_rcu);
                }
        }
@@ -4511,7 +4658,7 @@ void ust_app_clean_list(void)
                cds_lfht_for_each_entry(ust_app_ht_by_sock->ht, &iter.iter, app,
                                sock_n.node) {
                        ret = lttng_ht_del(ust_app_ht_by_sock, &iter);
-                       assert(!ret);
+                       LTTNG_ASSERT(!ret);
                }
        }
 
@@ -4562,7 +4709,7 @@ int ust_app_disable_channel_glb(struct ltt_ust_session *usess,
        struct ust_app_session *ua_sess;
        struct ust_app_channel *ua_chan;
 
-       assert(usess->active);
+       LTTNG_ASSERT(usess->active);
        DBG2("UST app disabling channel %s from global domain for session id %" PRIu64,
                        uchan->name, usess->id);
 
@@ -4587,11 +4734,11 @@ int ust_app_disable_channel_glb(struct ltt_ust_session *usess,
                lttng_ht_lookup(ua_sess->channels, (void *)uchan->name, &uiter);
                ua_chan_node = lttng_ht_iter_get_node_str(&uiter);
                /* If the session if found for the app, the channel must be there */
-               assert(ua_chan_node);
+               LTTNG_ASSERT(ua_chan_node);
 
                ua_chan = caa_container_of(ua_chan_node, struct ust_app_channel, node);
                /* The channel must not be already disabled */
-               assert(ua_chan->enabled == 1);
+               LTTNG_ASSERT(ua_chan->enabled == 1);
 
                /* Disable channel onto application */
                ret = disable_ust_app_channel(ua_sess, ua_chan, app);
@@ -4616,7 +4763,7 @@ int ust_app_enable_channel_glb(struct ltt_ust_session *usess,
        struct ust_app *app;
        struct ust_app_session *ua_sess;
 
-       assert(usess->active);
+       LTTNG_ASSERT(usess->active);
        DBG2("UST app enabling channel %s to global domain for session id %" PRIu64,
                        uchan->name, usess->id);
 
@@ -4662,7 +4809,7 @@ int ust_app_disable_event_glb(struct ltt_ust_session *usess,
        struct ust_app_channel *ua_chan;
        struct ust_app_event *ua_event;
 
-       assert(usess->active);
+       LTTNG_ASSERT(usess->active);
        DBG("UST app disabling event %s for all apps in channel "
                        "%s for session id %" PRIu64,
                        uevent->attr.name, uchan->name, usess->id);
@@ -4724,7 +4871,7 @@ int ust_app_channel_create(struct ltt_ust_session *usess,
        int ret = 0;
        struct ust_app_channel *ua_chan = NULL;
 
-       assert(ua_sess);
+       LTTNG_ASSERT(ua_sess);
        ASSERT_LOCKED(ua_sess->lock);
 
        if (!strncmp(uchan->name, DEFAULT_METADATA_NAME,
@@ -4804,7 +4951,7 @@ int ust_app_enable_event_glb(struct ltt_ust_session *usess,
        struct ust_app_channel *ua_chan;
        struct ust_app_event *ua_event;
 
-       assert(usess->active);
+       LTTNG_ASSERT(usess->active);
        DBG("UST app enabling event %s for all apps for session id %" PRIu64,
                        uevent->attr.name, usess->id);
 
@@ -4890,7 +5037,7 @@ int ust_app_create_event_glb(struct ltt_ust_session *usess,
        struct ust_app_session *ua_sess;
        struct ust_app_channel *ua_chan;
 
-       assert(usess->active);
+       LTTNG_ASSERT(usess->active);
        DBG("UST app creating event %s for all apps for session id %" PRIu64,
                        uevent->attr.name, usess->id);
 
@@ -4922,7 +5069,7 @@ int ust_app_create_event_glb(struct ltt_ust_session *usess,
                lttng_ht_lookup(ua_sess->channels, (void *)uchan->name, &uiter);
                ua_chan_node = lttng_ht_iter_get_node_str(&uiter);
                /* If the channel is not found, there is a code flow error */
-               assert(ua_chan_node);
+               LTTNG_ASSERT(ua_chan_node);
 
                ua_chan = caa_container_of(ua_chan_node, struct ust_app_channel, node);
 
@@ -4991,21 +5138,23 @@ int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app)
 skip_setup:
        /* This starts the UST tracing */
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_start_session(app->sock, ua_sess->handle);
+       ret = lttng_ust_ctl_start_session(app->sock, ua_sess->handle);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("Error starting tracing for app pid: %d (ret: %d)",
-                                       app->pid, ret);
-               } else {
-                       DBG("UST app start session failed. Application is dead.");
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app start session failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+                       pthread_mutex_unlock(&ua_sess->lock);
+                       goto end;
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app start session failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
                        pthread_mutex_unlock(&ua_sess->lock);
                        goto end;
+
+               } else {
+                       ERR("UST app start session failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid, app->sock);
                }
                goto error_unlock;
        }
@@ -5020,11 +5169,19 @@ skip_setup:
 
        /* Quiescent wait after starting trace */
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_wait_quiescent(app->sock);
+       ret = lttng_ust_ctl_wait_quiescent(app->sock);
        pthread_mutex_unlock(&app->sock_lock);
-       if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-               ERR("UST app wait quiescent failed for app pid %d ret %d",
-                               app->pid, ret);
+       if (ret < 0) {
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app wait quiescent failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app wait quiescent failed. Communication time out: pid =  %d, sock = %d",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app wait quiescent failed with ret %d: pid %d, sock = %d",
+                                       ret, app->pid, app->sock);
+               }
        }
 
 end:
@@ -5083,20 +5240,21 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app)
 
        /* This inhibits UST tracing */
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_stop_session(app->sock, ua_sess->handle);
+       ret = lttng_ust_ctl_stop_session(app->sock, ua_sess->handle);
        pthread_mutex_unlock(&app->sock_lock);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("Error stopping tracing for app pid: %d (ret: %d)",
-                                       app->pid, ret);
-               } else {
-                       DBG("UST app stop session failed. Application is dead.");
-                       /*
-                        * This is normal behavior, an application can die during the
-                        * creation process. Don't report an error so the execution can
-                        * continue normally.
-                        */
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app stop session failed. Application is dead: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+                       goto end_unlock;
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app stop session failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
                        goto end_unlock;
+
+               } else {
+                       ERR("UST app stop session failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid, app->sock);
                }
                goto error_rcu_unlock;
        }
@@ -5106,11 +5264,19 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app)
 
        /* Quiescent wait after stopping trace */
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_wait_quiescent(app->sock);
+       ret = lttng_ust_ctl_wait_quiescent(app->sock);
        pthread_mutex_unlock(&app->sock_lock);
-       if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-               ERR("UST app wait quiescent failed for app pid %d ret %d",
-                               app->pid, ret);
+       if (ret < 0) {
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app wait quiescent failed. Application is dead: pid= %d, sock = %d)",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app wait quiescent failed. Communication time out: pid= %d, sock = %d)",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app wait quiescent failed with ret %d: pid= %d, sock = %d)",
+                                       ret, app->pid, app->sock);
+               }
        }
 
        health_code_update();
@@ -5118,7 +5284,7 @@ int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app)
        registry = get_session_registry(ua_sess);
 
        /* The UST app session is held registry shall not be null. */
-       assert(registry);
+       LTTNG_ASSERT(registry);
 
        /* Push metadata for application before freeing the application. */
        (void) push_metadata(registry, ua_sess->consumer);
@@ -5182,7 +5348,7 @@ int ust_app_flush_app_session(struct ust_app *app,
                break;
        case LTTNG_BUFFER_PER_UID:
        default:
-               assert(0);
+               abort();
                break;
        }
 
@@ -5265,7 +5431,7 @@ int ust_app_flush_session(struct ltt_ust_session *usess)
        }
        default:
                ret = -1;
-               assert(0);
+               abort();
                break;
        }
 
@@ -5325,7 +5491,7 @@ int ust_app_clear_quiescent_app_session(struct ust_app *app,
                break;
        case LTTNG_BUFFER_PER_UID:
        default:
-               assert(0);
+               abort();
                ret = -1;
                break;
        }
@@ -5414,7 +5580,7 @@ int ust_app_clear_quiescent_session(struct ltt_ust_session *usess)
        }
        default:
                ret = -1;
-               assert(0);
+               abort();
                break;
        }
 
@@ -5456,11 +5622,19 @@ static int destroy_trace(struct ltt_ust_session *usess, struct ust_app *app)
 
        /* Quiescent wait after stopping trace */
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_wait_quiescent(app->sock);
+       ret = lttng_ust_ctl_wait_quiescent(app->sock);
        pthread_mutex_unlock(&app->sock_lock);
-       if (ret < 0 && ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-               ERR("UST app wait quiescent failed for app pid %d ret %d",
-                               app->pid, ret);
+       if (ret < 0) {
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app wait quiescent failed. Application is dead: pid= %d, sock = %d)",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app wait quiescent failed. Communication time out: pid= %d, sock = %d)",
+                                       app->pid, app->sock);
+               } else {
+                       ERR("UST app wait quiescent failed with ret %d: pid= %d, sock = %d)",
+                                       ret, app->pid, app->sock);
+               }
        }
 end:
        rcu_read_unlock();
@@ -5632,6 +5806,10 @@ void ust_app_synchronize_event_notifier_rules(struct ust_app *app)
        struct ust_app_event_notifier_rule *event_notifier_rule;
        unsigned int count, i;
 
+       if (!ust_app_supports_notifiers(app)) {
+               goto end;
+       }
+
        /*
         * Currrently, registering or unregistering a trigger with an
         * event rule condition causes a full synchronization of the event
@@ -5653,15 +5831,13 @@ void ust_app_synchronize_event_notifier_rules(struct ust_app *app)
        ret_code = notification_thread_command_list_triggers(
                        the_notification_thread_handle, 0, &triggers);
        if (ret_code != LTTNG_OK) {
-               ret = -1;
                goto end;
        }
 
-       assert(triggers);
+       LTTNG_ASSERT(triggers);
 
        t_status = lttng_triggers_get_count(triggers, &count);
        if (t_status != LTTNG_TRIGGER_STATUS_OK) {
-               ret = -1;
                goto end;
        }
 
@@ -5674,18 +5850,21 @@ void ust_app_synchronize_event_notifier_rules(struct ust_app *app)
                uint64_t token;
 
                trigger = lttng_triggers_borrow_mutable_at_index(triggers, i);
-               assert(trigger);
+               LTTNG_ASSERT(trigger);
 
                token = lttng_trigger_get_tracer_token(trigger);
                condition = lttng_trigger_get_condition(trigger);
 
-               if (lttng_condition_get_type(condition) != LTTNG_CONDITION_TYPE_ON_EVENT) {
+               if (lttng_condition_get_type(condition) !=
+                               LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES) {
                        /* Does not apply */
                        continue;
                }
 
-               condition_status = lttng_condition_on_event_borrow_rule_mutable(condition, &event_rule);
-               assert(condition_status == LTTNG_CONDITION_STATUS_OK);
+               condition_status =
+                               lttng_condition_event_rule_matches_borrow_rule_mutable(
+                                               condition, &event_rule);
+               LTTNG_ASSERT(condition_status == LTTNG_CONDITION_STATUS_OK);
 
                if (lttng_event_rule_get_domain_type(event_rule) == LTTNG_DOMAIN_KERNEL) {
                        /* Skip kernel related triggers. */
@@ -5725,7 +5904,7 @@ void ust_app_synchronize_event_notifier_rules(struct ust_app *app)
                                        lttng_triggers_get_at_index(
                                                        triggers, i);
 
-                       assert(trigger);
+                       LTTNG_ASSERT(trigger);
 
                        notification_thread_token =
                                        lttng_trigger_get_tracer_token(trigger);
@@ -5747,7 +5926,7 @@ void ust_app_synchronize_event_notifier_rules(struct ust_app *app)
                 */
                ret = lttng_ht_del(app->token_to_event_notifier_rule_ht,
                                &app_trigger_iter);
-               assert(ret == 0);
+               LTTNG_ASSERT(ret == 0);
 
                /* Callee logs errors. */
                (void) disable_ust_object(app, event_notifier_rule->obj);
@@ -5775,9 +5954,9 @@ void ust_app_synchronize_all_channels(struct ltt_ust_session *usess,
        struct cds_lfht_iter uchan_iter;
        struct ltt_ust_channel *uchan;
 
-       assert(usess);
-       assert(ua_sess);
-       assert(app);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(ua_sess);
+       LTTNG_ASSERT(app);
 
        cds_lfht_for_each_entry(usess->domain_global.channels->ht, &uchan_iter,
                        uchan, node.node) {
@@ -5841,19 +6020,21 @@ void ust_app_synchronize(struct ltt_ust_session *usess,
         * The application's configuration should only be synchronized for
         * active sessions.
         */
-       assert(usess->active);
+       LTTNG_ASSERT(usess->active);
 
        ret = find_or_create_ust_app_session(usess, app, &ua_sess, NULL);
        if (ret < 0) {
                /* Tracer is probably gone or ENOMEM. */
-               goto error;
+               if (ua_sess) {
+                       destroy_app_session(app, ua_sess);
+               }
+               goto end;
        }
-       assert(ua_sess);
+       LTTNG_ASSERT(ua_sess);
 
        pthread_mutex_lock(&ua_sess->lock);
        if (ua_sess->deleted) {
-               pthread_mutex_unlock(&ua_sess->lock);
-               goto end;
+               goto deleted_session;
        }
 
        rcu_read_lock();
@@ -5871,23 +6052,15 @@ void ust_app_synchronize(struct ltt_ust_session *usess,
         */
        ret = create_ust_app_metadata(ua_sess, app, usess->consumer);
        if (ret < 0) {
-               goto error_unlock;
+               ERR("Metadata creation failed for app sock %d for session id %" PRIu64,
+                               app->sock, usess->id);
        }
 
        rcu_read_unlock();
 
-end:
-       pthread_mutex_unlock(&ua_sess->lock);
-       /* Everything went well at this point. */
-       return;
-
-error_unlock:
-       rcu_read_unlock();
+deleted_session:
        pthread_mutex_unlock(&ua_sess->lock);
-error:
-       if (ua_sess) {
-               destroy_app_session(app, ua_sess);
-       }
+end:
        return;
 }
 
@@ -5911,8 +6084,8 @@ void ust_app_global_destroy(struct ltt_ust_session *usess, struct ust_app *app)
  */
 void ust_app_global_update(struct ltt_ust_session *usess, struct ust_app *app)
 {
-       assert(usess);
-       assert(usess->active);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(usess->active);
 
        DBG2("UST app global update for app sock %d for session id %" PRIu64,
                        app->sock, usess->id);
@@ -5947,16 +6120,16 @@ void ust_app_global_update(struct ltt_ust_session *usess, struct ust_app *app)
  */
 void ust_app_global_update_event_notifier_rules(struct ust_app *app)
 {
-       DBG2("UST application global event notifier rules update: app = '%s' (ppid: %d)",
-                       app->name, app->ppid);
+       DBG2("UST application global event notifier rules update: app = '%s', pid = %d)",
+                       app->name, app->pid);
 
-       if (!app->compatible) {
+       if (!app->compatible || !ust_app_supports_notifiers(app)) {
                return;
        }
 
        if (app->event_notifier_group.object == NULL) {
-               WARN("UST app global update of event notifiers for app skipped since communication handle is null: app = '%s' (ppid: %d)",
-                               app->name, app->ppid);
+               WARN("UST app global update of event notifiers for app skipped since communication handle is null: app = '%s' pid = %d)",
+                               app->name, app->pid);
                return;
        }
 
@@ -5991,20 +6164,6 @@ void ust_app_global_update_all_event_notifier_rules(void)
        rcu_read_unlock();
 }
 
-void ust_app_update_event_notifier_error_count(struct lttng_trigger *trigger)
-{
-       uint64_t error_count = 0;
-       enum event_notifier_error_accounting_status status;
-       struct lttng_condition *condition = lttng_trigger_get_condition(trigger);
-
-       status = event_notifier_error_accounting_get_count(trigger, &error_count);
-       if (status != EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK) {
-               ERR("Error getting trigger error count.");
-       }
-
-       lttng_condition_on_event_set_error_count(condition, error_count);
-}
-
 /*
  * Add context to a specific channel for global UST domain.
  */
@@ -6018,7 +6177,7 @@ int ust_app_add_ctx_channel_glb(struct ltt_ust_session *usess,
        struct ust_app_session *ua_sess;
        struct ust_app *app;
 
-       assert(usess->active);
+       LTTNG_ASSERT(usess->active);
 
        rcu_read_lock();
        cds_lfht_for_each_entry(ust_app_ht->ht, &iter.iter, app, pid_n.node) {
@@ -6071,9 +6230,9 @@ int ust_app_recv_registration(int sock, struct ust_register_msg *msg)
        int ret;
        uint32_t pid, ppid, uid, gid;
 
-       assert(msg);
+       LTTNG_ASSERT(msg);
 
-       ret = ustctl_recv_reg_msg(sock, &msg->type, &msg->major, &msg->minor,
+       ret = lttng_ust_ctl_recv_reg_msg(sock, &msg->type, &msg->major, &msg->minor,
                        &pid, &ppid, &uid, &gid,
                        &msg->bits_per_long,
                        &msg->uint8_t_alignment,
@@ -6122,7 +6281,7 @@ static struct ust_app_session *find_session_by_objd(struct ust_app *app,
        struct lttng_ht_iter iter;
        struct ust_app_session *ua_sess = NULL;
 
-       assert(app);
+       LTTNG_ASSERT(app);
 
        lttng_ht_lookup(app->ust_sessions_objd, (void *)((unsigned long) objd), &iter);
        node = lttng_ht_iter_get_node_ulong(&iter);
@@ -6149,7 +6308,7 @@ static struct ust_app_channel *find_channel_by_objd(struct ust_app *app,
        struct lttng_ht_iter iter;
        struct ust_app_channel *ua_chan = NULL;
 
-       assert(app);
+       LTTNG_ASSERT(app);
 
        lttng_ht_lookup(app->ust_objd, (void *)((unsigned long) objd), &iter);
        node = lttng_ht_iter_get_node_ulong(&iter);
@@ -6173,12 +6332,12 @@ error:
  * On success 0 is returned else a negative value.
  */
 static int reply_ust_register_channel(int sock, int cobjd,
-               size_t nr_fields, struct ustctl_field *fields)
+               size_t nr_fields, struct lttng_ust_ctl_field *fields)
 {
        int ret, ret_code = 0;
        uint32_t chan_id;
        uint64_t chan_reg_key;
-       enum ustctl_channel_header type;
+       enum lttng_ust_ctl_channel_header type;
        struct ust_app *app;
        struct ust_app_channel *ua_chan;
        struct ust_app_session *ua_sess;
@@ -6192,7 +6351,7 @@ static int reply_ust_register_channel(int sock, int cobjd,
        if (!app) {
                DBG("Application socket %d is being torn down. Abort event notify",
                                sock);
-               ret = 0;
+               ret = -1;
                goto error_rcu_unlock;
        }
 
@@ -6204,7 +6363,7 @@ static int reply_ust_register_channel(int sock, int cobjd,
                goto error_rcu_unlock;
        }
 
-       assert(ua_chan->session);
+       LTTNG_ASSERT(ua_chan->session);
        ua_sess = ua_chan->session;
 
        /* Get right session registry depending on the session buffer type. */
@@ -6225,7 +6384,7 @@ static int reply_ust_register_channel(int sock, int cobjd,
        pthread_mutex_lock(&registry->lock);
 
        ust_reg_chan = ust_registry_channel_find(registry, chan_reg_key);
-       assert(ust_reg_chan);
+       LTTNG_ASSERT(ust_reg_chan);
 
        if (!ust_reg_chan->register_done) {
                /*
@@ -6233,7 +6392,7 @@ static int reply_ust_register_channel(int sock, int cobjd,
                 * this channel to better guess header type for per-pid
                 * buffers.
                 */
-               type = USTCTL_CHANNEL_HEADER_LARGE;
+               type = LTTNG_UST_CTL_CHANNEL_HEADER_LARGE;
                ust_reg_chan->nr_ctx_fields = nr_fields;
                ust_reg_chan->ctx_fields = fields;
                fields = NULL;
@@ -6256,15 +6415,20 @@ static int reply_ust_register_channel(int sock, int cobjd,
 
 reply:
        DBG3("UST app replying to register channel key %" PRIu64
-                       " with id %u, type: %d, ret: %d", chan_reg_key, chan_id, type,
+                       " with id %u, type = %d, ret = %d", chan_reg_key, chan_id, type,
                        ret_code);
 
-       ret = ustctl_reply_register_channel(sock, chan_id, type, ret_code);
+       ret = lttng_ust_ctl_reply_register_channel(sock, chan_id, type, ret_code);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app reply channel failed with ret %d", ret);
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app reply channel failed. Application died: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app reply channel failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
                } else {
-                       DBG3("UST app reply channel failed. Application died");
+                       ERR("UST app reply channel failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid, app->sock);
                }
                goto error;
        }
@@ -6290,7 +6454,7 @@ error_rcu_unlock:
  * On success 0 is returned else a negative value.
  */
 static int add_event_ust_registry(int sock, int sobjd, int cobjd, char *name,
-               char *sig, size_t nr_fields, struct ustctl_field *fields,
+               char *sig, size_t nr_fields, struct lttng_ust_ctl_field *fields,
                int loglevel_value, char *model_emf_uri)
 {
        int ret, ret_code;
@@ -6308,7 +6472,7 @@ static int add_event_ust_registry(int sock, int sobjd, int cobjd, char *name,
        if (!app) {
                DBG("Application socket %d is being torn down. Abort event notify",
                                sock);
-               ret = 0;
+               ret = -1;
                goto error_rcu_unlock;
        }
 
@@ -6320,7 +6484,7 @@ static int add_event_ust_registry(int sock, int sobjd, int cobjd, char *name,
                goto error_rcu_unlock;
        }
 
-       assert(ua_chan->session);
+       LTTNG_ASSERT(ua_chan->session);
        ua_sess = ua_chan->session;
 
        registry = get_session_registry(ua_sess);
@@ -6356,12 +6520,17 @@ static int add_event_ust_registry(int sock, int sobjd, int cobjd, char *name,
         * application can be notified. In case of an error, it's important not to
         * return a negative error or else the application will get closed.
         */
-       ret = ustctl_reply_register_event(sock, event_id, ret_code);
+       ret = lttng_ust_ctl_reply_register_event(sock, event_id, ret_code);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app reply event failed with ret %d", ret);
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app reply event failed. Application died: pid = %d, sock = %d.",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app reply event failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
                } else {
-                       DBG3("UST app reply event failed. Application died");
+                       ERR("UST app reply event failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid, app->sock);
                }
                /*
                 * No need to wipe the create event since the application socket will
@@ -6392,7 +6561,7 @@ error_rcu_unlock:
  * On success 0 is returned else a negative value.
  */
 static int add_enum_ust_registry(int sock, int sobjd, char *name,
-               struct ustctl_enum_entry *entries, size_t nr_entries)
+               struct lttng_ust_ctl_enum_entry *entries, size_t nr_entries)
 {
        int ret = 0, ret_code;
        struct ust_app *app;
@@ -6409,6 +6578,7 @@ static int add_enum_ust_registry(int sock, int sobjd, char *name,
                DBG("Application socket %d is being torn down. Aborting enum registration",
                                sock);
                free(entries);
+               ret = -1;
                goto error_rcu_unlock;
        }
 
@@ -6444,12 +6614,17 @@ static int add_enum_ust_registry(int sock, int sobjd, char *name,
         * application can be notified. In case of an error, it's important not to
         * return a negative error or else the application will get closed.
         */
-       ret = ustctl_reply_register_enum(sock, enum_id, ret_code);
+       ret = lttng_ust_ctl_reply_register_enum(sock, enum_id, ret_code);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app reply enum failed with ret %d", ret);
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app reply enum failed. Application died: pid = %d, sock = %d",
+                                       app->pid, app->sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app reply enum failed. Communication time out: pid = %d, sock = %d",
+                                       app->pid, app->sock);
                } else {
-                       DBG3("UST app reply enum failed. Application died");
+                       ERR("UST app reply enum failed with ret %d: pid = %d, sock = %d",
+                                       ret, app->pid, app->sock);
                }
                /*
                 * No need to wipe the create enum since the application socket will
@@ -6475,38 +6650,48 @@ error_rcu_unlock:
 int ust_app_recv_notify(int sock)
 {
        int ret;
-       enum ustctl_notify_cmd cmd;
+       enum lttng_ust_ctl_notify_cmd cmd;
 
        DBG3("UST app receiving notify from sock %d", sock);
 
-       ret = ustctl_recv_notify(sock, &cmd);
+       ret = lttng_ust_ctl_recv_notify(sock, &cmd);
        if (ret < 0) {
-               if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                       ERR("UST app recv notify failed with ret %d", ret);
+               if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                       DBG3("UST app recv notify failed. Application died: sock = %d",
+                                       sock);
+               } else if (ret == -EAGAIN) {
+                       WARN("UST app recv notify failed. Communication time out: sock = %d",
+                                       sock);
                } else {
-                       DBG3("UST app recv notify failed. Application died");
+                       ERR("UST app recv notify failed with ret %d: sock = %d",
+                                       ret, sock);
                }
                goto error;
        }
 
        switch (cmd) {
-       case USTCTL_NOTIFY_CMD_EVENT:
+       case LTTNG_UST_CTL_NOTIFY_CMD_EVENT:
        {
                int sobjd, cobjd, loglevel_value;
                char name[LTTNG_UST_ABI_SYM_NAME_LEN], *sig, *model_emf_uri;
                size_t nr_fields;
-               struct ustctl_field *fields;
+               struct lttng_ust_ctl_field *fields;
 
                DBG2("UST app ustctl register event received");
 
-               ret = ustctl_recv_register_event(sock, &sobjd, &cobjd, name,
+               ret = lttng_ust_ctl_recv_register_event(sock, &sobjd, &cobjd, name,
                                &loglevel_value, &sig, &nr_fields, &fields,
                                &model_emf_uri);
                if (ret < 0) {
-                       if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                               ERR("UST app recv event failed with ret %d", ret);
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app recv event failed. Application died: sock = %d",
+                                               sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app recv event failed. Communication time out: sock = %d",
+                                               sock);
                        } else {
-                               DBG3("UST app recv event failed. Application died");
+                               ERR("UST app recv event failed with ret %d: sock = %d",
+                                               ret, sock);
                        }
                        goto error;
                }
@@ -6525,21 +6710,26 @@ int ust_app_recv_notify(int sock)
 
                break;
        }
-       case USTCTL_NOTIFY_CMD_CHANNEL:
+       case LTTNG_UST_CTL_NOTIFY_CMD_CHANNEL:
        {
                int sobjd, cobjd;
                size_t nr_fields;
-               struct ustctl_field *fields;
+               struct lttng_ust_ctl_field *fields;
 
                DBG2("UST app ustctl register channel received");
 
-               ret = ustctl_recv_register_channel(sock, &sobjd, &cobjd, &nr_fields,
+               ret = lttng_ust_ctl_recv_register_channel(sock, &sobjd, &cobjd, &nr_fields,
                                &fields);
                if (ret < 0) {
-                       if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                               ERR("UST app recv channel failed with ret %d", ret);
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app recv channel failed. Application died: sock = %d",
+                                               sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app recv channel failed. Communication time out: sock = %d",
+                                               sock);
                        } else {
-                               DBG3("UST app recv channel failed. Application died");
+                               ERR("UST app recv channel failed with ret %d: sock = %d)",
+                                               ret, sock);
                        }
                        goto error;
                }
@@ -6557,22 +6747,27 @@ int ust_app_recv_notify(int sock)
 
                break;
        }
-       case USTCTL_NOTIFY_CMD_ENUM:
+       case LTTNG_UST_CTL_NOTIFY_CMD_ENUM:
        {
                int sobjd;
                char name[LTTNG_UST_ABI_SYM_NAME_LEN];
                size_t nr_entries;
-               struct ustctl_enum_entry *entries;
+               struct lttng_ust_ctl_enum_entry *entries;
 
                DBG2("UST app ustctl register enum received");
 
-               ret = ustctl_recv_register_enum(sock, &sobjd, name,
+               ret = lttng_ust_ctl_recv_register_enum(sock, &sobjd, name,
                                &entries, &nr_entries);
                if (ret < 0) {
-                       if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) {
-                               ERR("UST app recv enum failed with ret %d", ret);
+                       if (ret == -EPIPE || ret == -LTTNG_UST_ERR_EXITING) {
+                               DBG3("UST app recv enum failed. Application died: sock = %d",
+                                               sock);
+                       } else if (ret == -EAGAIN) {
+                               WARN("UST app recv enum failed. Communication time out: sock = %d",
+                                               sock);
                        } else {
-                               DBG3("UST app recv enum failed. Application died");
+                               ERR("UST app recv enum failed with ret %d: sock = %d",
+                                               ret, sock);
                        }
                        goto error;
                }
@@ -6588,7 +6783,7 @@ int ust_app_recv_notify(int sock)
        }
        default:
                /* Should NEVER happen. */
-               assert(0);
+               abort();
        }
 
 error:
@@ -6611,7 +6806,7 @@ void ust_app_notify_sock_unregister(int sock)
        struct ust_app *app;
        struct ust_app_notify_sock_obj *obj;
 
-       assert(sock >= 0);
+       LTTNG_ASSERT(sock >= 0);
 
        rcu_read_lock();
 
@@ -6701,8 +6896,8 @@ enum lttng_error_code ust_app_snapshot_record(
        struct ust_app *app;
        char *trace_path = NULL;
 
-       assert(usess);
-       assert(output);
+       LTTNG_ASSERT(usess);
+       LTTNG_ASSERT(output);
 
        rcu_read_lock();
 
@@ -6732,7 +6927,7 @@ enum lttng_error_code ust_app_snapshot_record(
 
                        memset(pathname, 0, sizeof(pathname));
                        ret = snprintf(pathname, sizeof(pathname),
-                                       DEFAULT_UST_TRACE_DIR "/" DEFAULT_UST_TRACE_UID_PATH,
+                                       DEFAULT_UST_TRACE_UID_PATH,
                                        reg->uid, reg->bits_per_long);
                        if (ret < 0) {
                                PERROR("snprintf snapshot path");
@@ -6796,7 +6991,7 @@ enum lttng_error_code ust_app_snapshot_record(
 
                        /* Add the UST default trace dir to path. */
                        memset(pathname, 0, sizeof(pathname));
-                       ret = snprintf(pathname, sizeof(pathname), DEFAULT_UST_TRACE_DIR "/%s",
+                       ret = snprintf(pathname, sizeof(pathname), "%s",
                                        ua_sess->path);
                        if (ret < 0) {
                                status = LTTNG_ERR_INVALID;
@@ -6851,7 +7046,7 @@ enum lttng_error_code ust_app_snapshot_record(
                break;
        }
        default:
-               assert(0);
+               abort();
                break;
        }
 
@@ -6871,7 +7066,7 @@ uint64_t ust_app_get_size_one_more_packet_per_stream(
        struct ust_app *app;
        struct lttng_ht_iter iter;
 
-       assert(usess);
+       LTTNG_ASSERT(usess);
 
        switch (usess->buffer_type) {
        case LTTNG_BUFFER_PER_UID:
@@ -6927,7 +7122,7 @@ uint64_t ust_app_get_size_one_more_packet_per_stream(
                break;
        }
        default:
-               assert(0);
+               abort();
                break;
        }
 
@@ -6997,7 +7192,7 @@ int ust_app_pid_get_channel_runtime_stats(struct ltt_ust_session *usess,
                lttng_ht_lookup(ua_sess->channels, (void *) uchan->name, &uiter);
                ua_chan_node = lttng_ht_iter_get_node_str(&uiter);
                /* If the session is found for the app, the channel must be there */
-               assert(ua_chan_node);
+               LTTNG_ASSERT(ua_chan_node);
 
                ua_chan = caa_container_of(ua_chan_node, struct ust_app_channel, node);
 
@@ -7050,7 +7245,7 @@ int ust_app_regenerate_statedump(struct ltt_ust_session *usess,
        }
 
        pthread_mutex_lock(&app->sock_lock);
-       ret = ustctl_regenerate_statedump(app->sock, ua_sess->handle);
+       ret = lttng_ust_ctl_regenerate_statedump(app->sock, ua_sess->handle);
        pthread_mutex_unlock(&app->sock_lock);
 
 end_unlock:
@@ -7105,7 +7300,7 @@ enum lttng_error_code ust_app_rotate_session(struct ltt_session *session)
        struct ust_app *app;
        struct ltt_ust_session *usess = session->ust_session;
 
-       assert(usess);
+       LTTNG_ASSERT(usess);
 
        rcu_read_lock();
 
@@ -7118,11 +7313,6 @@ enum lttng_error_code ust_app_rotate_session(struct ltt_session *session)
                        struct buffer_reg_channel *buf_reg_chan;
                        struct consumer_socket *socket;
 
-                       if (!reg->registry->reg.ust->metadata_key) {
-                               /* Skip since no metadata is present */
-                               continue;
-                       }
-
                        /* Get consumer socket to use to push the metadata.*/
                        socket = consumer_find_socket_by_bitness(reg->bits_per_long,
                                        usess->consumer);
@@ -7145,6 +7335,19 @@ enum lttng_error_code ust_app_rotate_session(struct ltt_session *session)
                                }
                        }
 
+                       /*
+                        * The metadata channel might not be present.
+                        *
+                        * Consumer stream allocation can be done
+                        * asynchronously and can fail on intermediary
+                        * operations (i.e add context) and lead to data
+                        * channels created with no metadata channel.
+                        */
+                       if (!reg->registry->reg.ust->metadata_key) {
+                               /* Skip since no metadata is present. */
+                               continue;
+                       }
+
                        (void) push_metadata(reg->registry->reg.ust, usess->consumer);
 
                        ret = consumer_rotate_channel(socket,
@@ -7225,7 +7428,7 @@ enum lttng_error_code ust_app_rotate_session(struct ltt_session *session)
                break;
        }
        default:
-               assert(0);
+               abort();
                break;
        }
 
@@ -7245,7 +7448,7 @@ enum lttng_error_code ust_app_create_channel_subdirectories(
        char *pathname_index;
        int fmt_ret;
 
-       assert(usess->current_trace_chunk);
+       LTTNG_ASSERT(usess->current_trace_chunk);
        rcu_read_lock();
 
        switch (usess->buffer_type) {
@@ -7356,7 +7559,7 @@ enum lttng_error_code ust_app_clear_session(struct ltt_session *session)
        struct ust_app *app;
        struct ltt_ust_session *usess = session->ust_session;
 
-       assert(usess);
+       LTTNG_ASSERT(usess);
 
        rcu_read_lock();
 
@@ -7469,7 +7672,7 @@ enum lttng_error_code ust_app_clear_session(struct ltt_session *session)
                break;
        }
        default:
-               assert(0);
+               abort();
                break;
        }
 
@@ -7513,7 +7716,7 @@ enum lttng_error_code ust_app_open_packets(struct ltt_session *session)
        struct lttng_ht_iter iter;
        struct ltt_ust_session *usess = session->ust_session;
 
-       assert(usess);
+       LTTNG_ASSERT(usess);
 
        rcu_read_lock();
 
This page took 0.110085 seconds and 4 git commands to generate.