[lttng-dev] lttng-tools 2.6-rc vs. lttng-ust master
Nathan Lynch
Nathan_Lynch at mentor.com
Fri Dec 12 13:36:54 EST 2014
By accident I attempted to build lttng-tools stable-2.6 branch
against current lttng-ust master, and got:
trace-ust.c: In function 'trace_ust_create_event':
trace-ust.c:430:11: error: 'struct lttng_ust_event' has no member named 'disabled'
lue->attr.disabled = 1;
^
I found the commit below, which seems to indicate that this may be
anticipated/intentional, but I figured I'd raise the issue in case
it's not. Breaking source compatibility with lttng-tools doesn't
seem like a big deal, but does the removal of the 'disabled' field in
lttng-ust/master present a problem for other users of the library?
commit 3a4009667b330f62fc4d6100ead0bcfd5f5526d6
Author: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
Date: Wed Nov 12 18:18:32 2014 -0500
Fix: filter attach vs event enable race
In order to correctly handle the use-case where events are enabled
_after_ trace is started, and _after_ applications are already being
traced, the event should be created in a "disabled" state, so that it
does not trace events until its filter is attached.
This fix needs to be done both in lttng-tools and lttng-ust. In order to
keep ABI compatibility between tools and ust within a stable release
cycle, we introduce a new "disabled" within struct lttng_ust_event
padding (previously zeroed). Newer LTTng-UST checks this flag, and
fallback on the old racy behavior (enabling the event on creation) if it
is unset.
Therefore, old session daemon works with newer lttng-ust of the same
stable release, and vice-versa. However, building lttng-tools requires
an upgraded lttng-ust, which contains the communication protocol with
the new "disabled" field.
This patch should be backported to stable-2.4, stable-2.5, stable-2.6
branches.
More information about the lttng-dev
mailing list