X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Ftrigger-error-query.c;h=8c39e1b0655326bf83b587877c47fa17bf7f4d82;hb=ca806b0b247f89c62ac628a7779ae84049a8c2d7;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..8c39e1b06 100644 --- a/src/bin/lttng-sessiond/trigger-error-query.c +++ b/src/bin/lttng-sessiond/trigger-error-query.c @@ -10,10 +10,16 @@ #include #include -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; +} + +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 +30,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); + LTTNG_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; @@ -62,7 +79,6 @@ end: return status; } -LTTNG_HIDDEN enum lttng_trigger_status lttng_trigger_add_action_error_query_results( struct lttng_trigger *trigger, struct lttng_error_query_results *results) @@ -74,17 +90,16 @@ 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); + LTTNG_ASSERT(status == LTTNG_TRIGGER_STATUS_OK); action_status = lttng_action_add_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;