X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-events.c;h=9e4ad7cb82b44295a212ab89abc4daf001a64b61;hb=ad63a966ae7a204528fa77599f92100d7341be7a;hp=90fdadd61280bc2452063931ad1c7ca1fc837f8b;hpb=5c5373c3cbfebddb0068fe13600766bb381048da;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/notification-thread-events.c b/src/bin/lttng-sessiond/notification-thread-events.c index 90fdadd61..9e4ad7cb8 100644 --- a/src/bin/lttng-sessiond/notification-thread-events.c +++ b/src/bin/lttng-sessiond/notification-thread-events.c @@ -21,14 +21,14 @@ #include #include #include -#include +#include #include #include #include #include #include #include -#include +#include #include #include #include @@ -471,7 +471,7 @@ enum lttng_object_type get_condition_binding_object( case LTTNG_CONDITION_TYPE_SESSION_ROTATION_ONGOING: case LTTNG_CONDITION_TYPE_SESSION_ROTATION_COMPLETED: return LTTNG_OBJECT_TYPE_SESSION; - case LTTNG_CONDITION_TYPE_ON_EVENT: + case LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES: return LTTNG_OBJECT_TYPE_NONE; default: return LTTNG_OBJECT_TYPE_UNKNOWN; @@ -1953,9 +1953,9 @@ int handle_notification_thread_command_session_rotation( * Ownership of `evaluation` transferred to the action executor * no matter the result. */ - executor_status = action_executor_enqueue(state->executor, - trigger, evaluation, &session_creds, - client_list); + executor_status = action_executor_enqueue_trigger( + state->executor, trigger, evaluation, + &session_creds, client_list); evaluation = NULL; switch (executor_status) { case ACTION_EXECUTOR_STATUS_OK: @@ -2174,40 +2174,6 @@ end: return ret; } -static -int condition_on_event_update_error_count(struct lttng_trigger *trigger) -{ - int ret = 0; - uint64_t error_count = 0; - struct lttng_condition *condition; - enum event_notifier_error_accounting_status status; - - condition = lttng_trigger_get_condition(trigger); - assert(lttng_condition_get_type(condition) == - LTTNG_CONDITION_TYPE_ON_EVENT); - - status = event_notifier_error_accounting_get_count(trigger, &error_count); - if (status != EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK) { - uid_t trigger_owner_uid; - const char *trigger_name; - const enum lttng_trigger_status trigger_status = - lttng_trigger_get_owner_uid( - trigger, &trigger_owner_uid); - - assert(trigger_status == LTTNG_TRIGGER_STATUS_OK); - if (lttng_trigger_get_name(trigger, &trigger_name) != LTTNG_TRIGGER_STATUS_OK) { - trigger_name = "(unnamed)"; - } - - ERR("Failed to get event notifier error count of trigger for update: trigger owner = %d, trigger name = '%s'", - trigger_owner_uid, trigger_name); - ret = -1; - } - - lttng_condition_on_event_set_error_count(condition, error_count); - return ret; -} - int handle_notification_thread_remove_tracer_event_source_no_result( struct notification_thread_state *state, int tracer_event_source_fd) @@ -2255,12 +2221,6 @@ static int handle_notification_thread_command_list_triggers( continue; } - if (lttng_trigger_needs_tracer_notifier(trigger_ht_element->trigger)) { - ret = condition_on_event_update_error_count( - trigger_ht_element->trigger); - assert(!ret); - } - ret = lttng_triggers_add(local_triggers, trigger_ht_element->trigger); if (ret < 0) { @@ -2376,12 +2336,12 @@ bool condition_is_supported(struct lttng_condition *condition) is_supported = kernel_supports_ring_buffer_snapshot_sample_positions() == 1; break; } - case LTTNG_CONDITION_TYPE_ON_EVENT: + case LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES: { const struct lttng_event_rule *event_rule; enum lttng_domain_type domain; const enum lttng_condition_status status = - lttng_condition_on_event_get_rule( + lttng_condition_event_rule_matches_get_rule( condition, &event_rule); assert(status == LTTNG_CONDITION_STATUS_OK); @@ -2520,12 +2480,12 @@ bool is_trigger_action_notify(const struct lttng_trigger *trigger) goto end; } - action_status = lttng_action_group_get_count(action, &count); + action_status = lttng_action_list_get_count(action, &count); assert(action_status == LTTNG_ACTION_STATUS_OK); for (i = 0; i < count; i++) { const struct lttng_action *inner_action = - lttng_action_group_get_at_index( + lttng_action_list_get_at_index( action, i); action_type = lttng_action_get_type(inner_action); @@ -2642,7 +2602,7 @@ enum lttng_error_code setup_tracer_notifier( goto error_remove_ht_element; } - lttng_condition_on_event_set_error_counter_index( + lttng_condition_event_rule_matches_set_error_counter_index( condition, error_counter_index); ret = LTTNG_OK; @@ -2917,8 +2877,8 @@ int handle_notification_thread_command_register_trigger( * Ownership of `evaluation` transferred to the action executor * no matter the result. */ - executor_status = action_executor_enqueue(state->executor, trigger, - evaluation, &object_creds, client_list); + executor_status = action_executor_enqueue_trigger(state->executor, + trigger, evaluation, &object_creds, client_list); evaluation = NULL; switch (executor_status) { case ACTION_EXECUTOR_STATUS_OK: @@ -4609,7 +4569,7 @@ int dispatch_one_event_notifier_notification(struct notification_thread_state *s trigger_status = lttng_trigger_get_name(element->trigger, &trigger_name); assert(trigger_status == LTTNG_TRIGGER_STATUS_OK); - if (lttng_condition_on_event_get_capture_descriptor_count( + if (lttng_condition_event_rule_matches_get_capture_descriptor_count( lttng_trigger_get_const_condition(element->trigger), &capture_count) != LTTNG_CONDITION_STATUS_OK) { ERR("Failed to get capture count"); @@ -4623,10 +4583,10 @@ int dispatch_one_event_notifier_notification(struct notification_thread_state *s goto end; } - evaluation = lttng_evaluation_on_event_create( + evaluation = lttng_evaluation_event_rule_matches_create( container_of(lttng_trigger_get_const_condition( element->trigger), - struct lttng_condition_on_event, + struct lttng_condition_event_rule_matches, parent), notification->capture_buffer, notification->capture_buf_size, false); @@ -4638,7 +4598,7 @@ int dispatch_one_event_notifier_notification(struct notification_thread_state *s } client_list = get_client_list_from_condition(state, lttng_trigger_get_const_condition(element->trigger)); - executor_status = action_executor_enqueue(state->executor, + executor_status = action_executor_enqueue_trigger(state->executor, element->trigger, evaluation, NULL, client_list); switch (executor_status) { case ACTION_EXECUTOR_STATUS_OK: @@ -4921,9 +4881,9 @@ int handle_notification_thread_channel_sample( * Ownership of `evaluation` transferred to the action executor * no matter the result. */ - executor_status = action_executor_enqueue(state->executor, - trigger, evaluation, &channel_creds, - client_list); + executor_status = action_executor_enqueue_trigger( + state->executor, trigger, evaluation, + &channel_creds, client_list); evaluation = NULL; switch (executor_status) { case ACTION_EXECUTOR_STATUS_OK: