* existed. If not skip the action altogether.
*/
if (!item->context.session_id.is_set) {
- DBG("Session `%s` was not present at the moment the work item was enqueued for %s` action of trigger `%s`",
+ DBG("Session `%s` was not present at the moment the work item was enqueued for `%s` action of trigger `%s`",
session_name, get_action_name(action),
get_trigger_name(work_item->trigger));
lttng_action_increase_execution_failure_count(action);
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_lock(session);
if (session->destroyed) {
- DBG("Session '%s' with id = %" PRIu64 " is flagged as destroyed. Skipping: action = '%s', trigger = '%s'",
+ DBG("Session `%s` with id = %" PRIu64 " is flagged as destroyed. Skipping: action = `%s`, trigger = `%s`",
session->name, session->id,
get_action_name(action),
get_trigger_name(work_item->trigger));
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
* existed. If not, skip the action altogether.
*/
if (!item->context.session_id.is_set) {
- DBG("Session `%s` was not present at the moment the work item was enqueued for %s` action of trigger `%s`",
+ DBG("Session `%s` was not present at the moment the work item was enqueued for `%s` action of trigger `%s`",
session_name, get_action_name(action),
get_trigger_name(work_item->trigger));
lttng_action_increase_execution_failure_count(action);
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_lock(session);
if (session->destroyed) {
- DBG("Session '%s' with id = %" PRIu64 " is flagged as destroyed. Skipping: action = '%s', trigger = '%s'",
+ DBG("Session `%s` with id = %" PRIu64 " is flagged as destroyed. Skipping: action = `%s`, trigger = `%s`",
session->name, session->id,
get_action_name(action),
get_trigger_name(work_item->trigger));
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
* existed. If not, skip the action altogether.
*/
if (!item->context.session_id.is_set) {
- DBG("Session `%s` was not present at the moment the work item was enqueued for %s` action of trigger `%s`",
+ DBG("Session `%s` was not present at the moment the work item was enqueued for `%s` action of trigger `%s`",
session_name, get_action_name(action),
get_trigger_name(work_item->trigger));
lttng_action_increase_execution_failure_count(action);
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_lock(session);
if (session->destroyed) {
- DBG("Session '%s' with id = %" PRIu64 " is flagged as destroyed. Skipping: action = '%s', trigger = '%s'",
+ DBG("Session `%s` with id = %" PRIu64 " is flagged as destroyed. Skipping: action = `%s`, trigger = `%s`",
session->name, session->id,
get_action_name(action),
get_trigger_name(work_item->trigger));
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
* existed. If not, skip the action altogether.
*/
if (!item->context.session_id.is_set) {
- DBG("Session was not present at the moment the work item was enqueued for %s` action of trigger `%s`",
+ DBG("Session was not present at the moment the work item was enqueued for `%s` action of trigger `%s`",
get_action_name(action),
get_trigger_name(work_item->trigger));
lttng_action_increase_execution_failure_count(action);
}
session_lock_list();
+ rcu_read_lock();
session = session_find_by_id(LTTNG_OPTIONAL_GET(item->context.session_id));
if (!session) {
DBG("Failed to find session `%s` by name while executing `%s` action of trigger `%s`",
session_lock(session);
if (session->destroyed) {
- DBG("Session '%s' with id = %" PRIu64 " is flagged as destroyed. Skipping: action = '%s', trigger = '%s'",
+ DBG("Session `%s` with id = %" PRIu64 " is flagged as destroyed. Skipping: action = `%s`, trigger = `%s`",
session->name, session->id,
get_action_name(action),
get_trigger_name(work_item->trigger));
session_unlock(session);
session_put(session);
error_unlock_list:
+ rcu_read_unlock();
session_unlock_list();
end:
return ret;
work_item->trigger, &trigger_owner_uid);
LTTNG_ASSERT(trigger_status == LTTNG_TRIGGER_STATUS_OK);
- DBG("Work item skipped since the associated trigger is no longer registered: work item id = %" PRIu64 ", trigger name = '%s', trigger owner uid = %d",
+ DBG("Work item skipped since the associated trigger is no longer registered: work item id = %" PRIu64 ", trigger name = `%s`, trigger owner uid = %d",
work_item->id, trigger_name,
(int) trigger_owner_uid);
ret = 0;
bool signal = false;
LTTNG_ASSERT(trigger);
+ ASSERT_RCU_READ_LOCKED();
pthread_mutex_lock(&executor->work.lock);
/* Check for queue overflow. */
work_item = (action_work_item *) zmalloc(sizeof(*work_item));
if (!work_item) {
- PERROR("Failed to allocate action executor work item: trigger name = '%s'",
+ PERROR("Failed to allocate action executor work item: trigger name = `%s`",
get_trigger_name(trigger));
executor_status = ACTION_EXECUTOR_STATUS_ERROR;
goto error_unlock;