X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrigger-error-query.c;h=1826a2d8b785197eb0b42b49c8b52aefce43b1c9;hb=4e60d29243568bf7c546e9ba04f5bd4bb5a03e32;hp=bc8e7f688b6e4b3071617047ca3e314b6d34a19d;hpb=588c4b0d153e8919b8d9159b69ce0db8fbe52af0;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/trigger-error-query.c b/src/bin/lttng-sessiond/trigger-error-query.c index bc8e7f688..1826a2d8b 100644 --- a/src/bin/lttng-sessiond/trigger-error-query.c +++ b/src/bin/lttng-sessiond/trigger-error-query.c @@ -14,6 +14,14 @@ LTTNG_HIDDEN enum lttng_trigger_status lttng_trigger_add_error_results( const struct lttng_trigger *trigger, struct lttng_error_query_results *results) +{ + return LTTNG_TRIGGER_STATUS_OK; +} + +LTTNG_HIDDEN +enum lttng_trigger_status lttng_trigger_condition_add_error_results( + const struct lttng_trigger *trigger, + struct lttng_error_query_results *results) { enum lttng_trigger_status status; uint64_t discarded_tracer_messages_count; @@ -24,15 +32,26 @@ enum lttng_trigger_status lttng_trigger_add_error_results( status = lttng_trigger_get_name(trigger, &trigger_name); trigger_name = status == LTTNG_TRIGGER_STATUS_OK ? - trigger_name : "(unnamed)"; + trigger_name : "(anonymous)"; status = lttng_trigger_get_owner_uid(trigger, &trigger_owner); assert(status == LTTNG_TRIGGER_STATUS_OK); + /* + * Only add discarded tracer messages count for applicable conditions. + * As of 2.13, only "event rule matches" conditions can generate + * reportable errors hence why this function is very specific to this + * condition type. + */ + if (!lttng_trigger_needs_tracer_notifier(trigger)) { + status = LTTNG_TRIGGER_STATUS_OK; + goto end; + } + error_accounting_status = event_notifier_error_accounting_get_count( trigger, &discarded_tracer_messages_count); if (error_accounting_status != EVENT_NOTIFIER_ERROR_ACCOUNTING_STATUS_OK) { - ERR("Failed to retrieve tracer discarded messages count for triger: triggger name = '%s', trigger owner uid = %d", + ERR("Failed to retrieve tracer discarded messages count for trigger: trigger name = '%s', trigger owner uid = %d", trigger_name, (int) trigger_owner); status = LTTNG_TRIGGER_STATUS_ERROR; goto end; @@ -74,7 +93,7 @@ enum lttng_trigger_status lttng_trigger_add_action_error_query_results( status = lttng_trigger_get_name(trigger, &trigger_name); trigger_name = status == LTTNG_TRIGGER_STATUS_OK ? - trigger_name : "(unnamed)"; + trigger_name : "(anonymous)"; status = lttng_trigger_get_owner_uid(trigger, &trigger_owner); assert(status == LTTNG_TRIGGER_STATUS_OK); @@ -83,8 +102,7 @@ enum lttng_trigger_status lttng_trigger_add_action_error_query_results( lttng_trigger_get_action(trigger), results); switch (action_status) { case LTTNG_ACTION_STATUS_OK: - status = LTTNG_TRIGGER_STATUS_OK; - goto end; + break; default: status = LTTNG_TRIGGER_STATUS_ERROR; goto end;