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) {
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.
*/
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);
}
}
+ /*
+ * 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,