Move on-event*.* to event-rule-matches*.*
[lttng-tools.git] / src / bin / lttng-sessiond / ust-app.c
index 54cd14ee3523955d28cd6ea4685a5f305a7170a9..eb5c5a2ead4f2c1652da68782e86c03fd06783c6 100644 (file)
@@ -29,8 +29,8 @@
 #include <lttng/event-rule/event-rule-internal.h>
 #include <lttng/event-rule/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>
 
@@ -1271,6 +1271,8 @@ static struct ust_app_event_notifier_rule *alloc_ust_app_event_notifier_rule(
        assert(LTTNG_CONDITION_STATUS_OK == lttng_condition_on_event_get_rule(condition, &event_rule));
        assert(event_rule);
 
+       ua_event_notifier_rule->error_counter_index =
+                       lttng_condition_on_event_get_error_counter_index(condition);
        /* Acquire the event notifier's reference to the trigger. */
        lttng_trigger_get(trigger);
 
@@ -4065,13 +4067,29 @@ int ust_app_setup_event_notifier_group(struct ust_app *app)
 
        event_notifier_error_accounting_status = event_notifier_error_accounting_register_app(app);
        if (event_notifier_error_accounting_status != EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK) {
+               if (event_notifier_error_accounting_status == EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_APP_DEAD) {
+                       DBG3("Failed to setup event notifier error accounting (application is dead): app socket fd = %d",
+                                       app->sock);
+                       ret = 0;
+                       goto error_accounting;
+               }
+
                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);
        free(app->event_notifier_group.object);
This page took 0.024109 seconds and 4 git commands to generate.