From 17a2eba9827b0985e0e213109298e60ff869ba60 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Fri, 28 Nov 2014 11:07:17 -0500 Subject: [PATCH] Fix: Don't leave events enabled if they were saved in a disabled state MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Events are enabled by default on creation. The session configuration loader must make sure to disable them after creation when restoring an event that was saved in the "disabled" state. Reported-by: Marcel Hamer Signed-off-by: Jérémie Galarneau --- src/common/config/config.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/common/config/config.c b/src/common/config/config.c index bfb2576f4..e5c1da132 100644 --- a/src/common/config/config.c +++ b/src/common/config/config.c @@ -1632,6 +1632,24 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, ret = lttng_enable_event_with_exclusions(handle, &event, channel_name, filter_expression, exclusion_count, exclusions); + if (ret) { + goto end; + } + + if (!event.enabled) { + /* + * Note that we should use lttng_disable_event_ext() (2.6+) to + * eliminate the risk of clashing on events of the same + * name (with different event types and loglevels). + * + * Unfortunately, lttng_disable_event_ext() only performs a + * match on the name and event type and errors out if any other + * event attribute is not set to its default value. + * + * This will disable all events that match this name. + */ + ret = lttng_disable_event(handle, event.name, channel_name); + } end: for (i = 0; i < exclusion_count; i++) { free(exclusions[i]); -- 2.34.1